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

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

WBOY
WBOYOriginal
2016-06-07 16:43:081479browse

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

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn