当前位置:Gxlcms > mysql > ORA-06547:INSERT,UPDATE或DELETE语句必须使用RETURNING子句

ORA-06547:INSERT,UPDATE或DELETE语句必须使用RETURNING子句

时间:2021-07-01 10:21:17 帮助过:4人阅读

ORA-06547: INSERT, UPDATE 或 DELETE 语句必须使用 RETURNING 子句

ORA-06547: INSERT, UPDATE 或 DELETE 语句必须使用 RETURNING 子句

产生这个错误的原因:

returning into子句作用于insert,,update,delete,上而select则不行,应该用into。

报错的存储如下:

create or replace procedure p_stu_info(s_id number, s_name varchar2) is
v_name varchar2(10);
v_age number;
v_ErrMsg varchar2(200);
begin
execute immediate 'select name,age from student_test where id=:1 and name=:2'
using s_id, s_name
returning into v_name, v_age;
dbms_output.put_line(v_name || '的年龄为:' || to_char(v_age));
exception
when others then
v_ErrMsg := SUBSTRB(SQLERRM, 1, 200);
dbms_output.put_line('找不到相应学生');
end p_stu_info;

改成下面这样就ok了:

create or replace procedure p_stu_info(s_id number, s_name varchar2) is
v_name varchar2(10);
v_age number;
v_ErrMsg varchar2(200);
begin
execute immediate 'select name,age from student_test where id=:1 and name=:2'
into v_name, v_age
using s_id, s_name;
dbms_output.put_line(v_name || '的年龄为:' || to_char(v_age));
exception
when others then
v_ErrMsg := SUBSTRB(SQLERRM, 1, 200);
dbms_output.put_line('找不到相应学生,错误原因:'||v_ErrMsg);
end p_stu_info;

本文永久更新链接地址:

linux

人气教程排行