错误:在“或”附近出现语法错误;“返回”;关于存储过程-PostgreSQL 8.1.23
我有一个存储过程,如下所示:错误:在“或”附近出现语法错误;“返回”;关于存储过程-PostgreSQL 8.1.23,postgresql,stored-procedures,version,Postgresql,Stored Procedures,Version,我有一个存储过程,如下所示: INSERT INTO bakersfun.orderhead (order_id,order_dt, customer_id, route_id, routenum, ordertype, create_station_id, create_stationtype, create_time,create_user_id,tran_time, tran_user_id,station_id) values (nextval('b
INSERT INTO bakersfun.orderhead
(order_id,order_dt, customer_id, route_id, routenum, ordertype, create_station_id, create_stationtype, create_time,create_user_id,tran_time, tran_user_id,station_id)
values
(nextval('bakersfun.orderhead_order_id_seq'),$1, $2, $3, $4, $5, $6, $7, LOCALTIMESTAMP, $8,
default, default,$9)
returning order_id;
new.sql:15: ERROR: syntax error at or near "returning"
LINE 15: returning order_id;
执行时,我得到如下错误:
INSERT INTO bakersfun.orderhead
(order_id,order_dt, customer_id, route_id, routenum, ordertype, create_station_id, create_stationtype, create_time,create_user_id,tran_time, tran_user_id,station_id)
values
(nextval('bakersfun.orderhead_order_id_seq'),$1, $2, $3, $4, $5, $6, $7, LOCALTIMESTAMP, $8,
default, default,$9)
returning order_id;
new.sql:15: ERROR: syntax error at or near "returning"
LINE 15: returning order_id;
PostgreSQL版本:PostgreSQL 8.1.23
我注意到它在PostgreSQL 8.4.20上运行
有什么替代方案可以在PostgreSQL 8.1.23上运行
DECLARE
l_id integer; -- change data type according to you.
BEGIN
INSERT INTO bakersfun.orderhead
(order_id,order_dt, customer_id, route_id, routenum, ordertype, create_station_id, create_stationtype, create_time,create_user_id,tran_time, tran_user_id,station_id)
values
(nextval('bakersfun.orderhead_order_id_seq'),$1, $2, $3, $4, $5, $6, $7, LOCALTIMESTAMP, $8,
default, default,$9)
returning order_id into l_id; --< store the returned ID in local variable
return l_id; --< return this variable
END
l_id整数;--根据需要更改数据类型。
开始
插入bakersfun.orderhead
(订单id、订单dt、客户id、路线id、路线编号、订单类型、创建站点id、创建站点类型、创建时间、创建用户id、传输时间、传输用户id、站点id)
价值观
(nextval('bakersfun.orderhead_order_id_seq'),$1、$2、$3、$4、$5、$6、$7,LOCALTIMESTAMP,$8,
默认值,默认值,$9)
将订单id返回到l_id;--<将返回的ID存储在局部变量中
返回l_id;--<返回此变量
结束
更多参考请查看这两个链接
我希望这两个链接能帮助您找到answer@ShubhamBatra将其作为答案发布。您的问题是否已解决?@Shubham Batra尚未成为好友。获取错误为
SQL错误:错误:语法错误位于或接近“整数”行2:l_id integer;^代码>订单id
为串行类型。您可以看到,我正在插入order\u id
作为nextval('bakersfun.orderhead\u order\u id\u seq')
,因此order\u id
不需要指定as IN或OUT参数。您可以创建sql Fiddle吗?它只有9.3版。在9.3中,一切都会很好。所以不能被创造