execute zw_get_status( sz_billingcyclid,sz_consolenumber) into n_status;
改不
select zw_get_status( sz_billingcyclid,sz_consolenumber) into n_status from dual;

解决方案 »

  1.   

    编译过去了,能否说一下为什么直接使用execute语句不能执行子函数?谢!
    select 语法是什么语法,from dual是什么含义?这部分内容在oracle哪方面章节中讲述?
      

  2.   

    execute是动态SQL的语法。你的用不着
    select .... into ....就是赋值语句,把zw_get_status()函数的结果赋值给 n_status ,这相当于SQL Sever中的set
      

  3.   

    dual是Oracle的虚表,常用于求函数的值。
      

  4.   

    了解到execute是运行存储过程与函数的命令,在我这段代码中,如应用execute命令,是否有相关写法?或者根本不能在此应用这个命令,那么execute命令在什么环境下应用?
      

  5.   

    你这个不能execute,你为什么非要用execute。你是不是觉得用execute这个非常爽!!
    给下非要用execute的例子,你去慢慢看吧!!存储过程里面不可以用create table语句吗?我怎样才能动态建表?例一create or replace function test return varchar2 asv_cursor number;v_string varchar2(200);v_row number;beginv_cursor:=dbms_sql.open_cursor;--v_string:='update fnd_user a set a.description=''fred'' where a.user_id=1055';v_string:='create table testdb (text varchar2(200))';dbms_sql.parse(v_cursor,v_string,dbms_sql.native);v_row:=dbms_sql.execute(v_cursor);dbms_sql.close_cursor(v_cursor);return ('成功执行');exceptionwhen others thendbms_sql.close_cursor(v_cursor);return ('执行失败!'||sqlcode||sqlerrm);raise;end;