知识大全 Oracle动态SQL返回单条结果和结果集

Posted 类型

篇首语:有时候总感觉别人忽略了自己,想想可能是自己太闲了。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 Oracle动态SQL返回单条结果和结果集相关的知识,希望对你有一定的参考价值。

Oracle动态SQL返回单条结果和结果集  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

   DDL 和 DML

  /*** DDL ***/

  begin

  EXECUTE IMMEDIATE drop table temp_ ;

  EXECUTE IMMEDIATE create table temp_ (name varchar ( )) ;

  end;

  /*** DML ***/

  declare

  v_ varchar ( );

  v_ varchar ( );

  str varchar ( );

  begin

  v_ := 测试人员 ;

  v_ := 北京 ;

  str := INSERT INTO test (name address) VALUES (: : ) ;

  EXECUTE IMMEDIATE str USING v_ v_ ;

  mit;

  end;

   返回单条结果

  declare

  str varchar ( );

  c_ varchar ( );

  r_ test%rowtype;

  begin

  c_ := 测试人员 ;

  str:= select * from test where name=:c WHERE ROWNUM= ;

  execute immediate str into r_ using c_ ;

  DBMS_OUTPUT PUT_LINE(R_ NAME||R_ ADDRESS);

  end ;

   返回结果集

  CREATE OR REPLACE package pkg_test as

  /* 定义ref cursor类型

  不加return类型 为弱类型 允许动态sql查询

  否则为强类型 无法使用动态sql查询;

  */

  type myrctype is ref cursor;

   函数申明

  function get(intID number) return myrctype;

  end pkg_test;

  /

  CREATE OR REPLACE package body pkg_test as

   函数体

  function get(intID number) return myrctype is

  rc myrctype; 定义ref cursor变量

  sqlstr varchar ( );

  begin

  if intID= then

   静态测试 直接用select语句直接返回结果

  open rc for select id name sex address postcode birthday from student;

  else

   动态sql赋值 用:w_id来申明该变量从外部获得

  sqlstr := select id name sex address postcode birthday from student where id=:w_id ;

   动态测试 用sqlstr字符串返回结果 用using关键词传递参数

  open rc for sqlstr using intid;

  end if;

  return rc;

  end get;

  end pkg_test;

cha138/Article/program/Oracle/201311/17186

相关参考