我正在尝试做一个查询,它必须从一列中获取最大值,添加一个(+1)并在左侧用n个零格式化它,直到9个位置。
我尝试过很多在h2数据库中工作的查询,但在oracle中却没有
INSERT INTO XXX.YYY(X,Y,Z)
VALUES
(CONCAT(:X, :Y, (LPAD((SELECT nvl(max(Z),0) + 1 FROM XXX.YYY),9,'0'))),
(LPAD((SELECT nvl(max(Z),0) + 1 FROM XXX.YYY),9,'0')),
:Z)
这将引发以下错误:
java.sql.sqlsyntaxerrorexception:ora-00909:参数数无效
1条答案
按热度按时间8yparm6h1#
这条线有问题。
oracle不允许超过2个参数。使用管道代替concat操作符(
||
)此外,您还可以使用
INSERT INTO .. SELECT
具体如下: