oracle arr

在oracle里面有些函数不能写在procedure里面,例如set serveroutput on;这个只能是在类似command window里面设置,然后执行有dbms_output.put_line();的procedure,这样就可以显示出来。

sql 代码
  1. 例子代码:   
  2.   
  3. CREATE OR REPLACE TYPE Tyt_myarr AS VARRAY(100) OF CHAR(10)   
  4.   
  5. create or replace procedure myarrTest(   
  6. i_myarr IN TYT_MYARR   
  7. is  
  8. v_int int;   
  9. begin  
  10.    v_int := i_myarr.first;   
  11.    loop   
  12.    exit when v_int is null;   
  13.    dbms_output.put_line(v_int);   
  14.    v_int:=i_myarr.next(v_int);   
  15.    end loop;   
  16. end myarrTest;   
  17.   
  18. 测试:   
  19.   
  20. 打开一个command window:   
  21.   
  22. 输入set serveroutput on;   
  23.   
  24. ed   
  25.   
  26. declare  
  27.    -- Non-scalar parameters require additional processing    
  28.    i_myarr tyt_myarr;   
  29. begin  
  30.    -- Call the procedure   
  31.    i_myarr := tyt_myarr('1','2','3');   
  32.    myarrtest(i_myarr => i_myarr);   
  33. end;   
  34.   
  35. /   
  36.   
  37. 就可以看到结果   

你可能感兴趣的:(oracle,sql)