在oracle里面有些函数不能写在procedure里面,例如set serveroutput on;这个只能是在类似command window里面设置,然后执行有dbms_output.put_line();的procedure,这样就可以显示出来。
sql 代码
- 例子代码:
- CREATE OR REPLACE TYPE Tyt_myarr AS VARRAY(100) OF CHAR(10)
- create or replace procedure myarrTest(
- i_myarr IN TYT_MYARR
- ) is
- v_int int;
- begin
- v_int := i_myarr.first;
- loop
- exit when v_int is null;
- dbms_output.put_line(v_int);
- v_int:=i_myarr.next(v_int);
- end loop;
- end myarrTest;
- 测试:
- 打开一个command window:
- 输入set serveroutput on;
- ed
- declare
- -- Non-scalar parameters require additional processing
- i_myarr tyt_myarr;
- begin
- -- Call the procedure
- i_myarr := tyt_myarr('1','2','3');
- myarrtest(i_myarr => i_myarr);
- end;
- /
- 就可以看到结果