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

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

WBOY
WBOYOriginal
2016-06-07 16:43:081509Durchsuche

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

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Vorheriger Artikel:Oracle数据库静默安装总结Nächster Artikel:PL/SQL 包的创建和应用