- 论坛徽章:
- 0
|
由于本人的动态sql语句超过255字节,所以想用varchar2a,可是oracle执行时报参数不匹配。请各位大虾看看。
declare
v_acct_bal_rec integer;
rows_processed integer;
v_out1 VARCHAR2 (204 ;
type varchar2a is table of varchar2(32767) index by binary_integer;
v_str VARCHAR2a;
BEGIN
v_str(1) :='select acct_no from rb_acct';-- a long string
v_acct_bal_rec:= dbms_sql.open_cursor;
dbms_sql.parse(v_acct_bal_rec, v_str,1,v_str.count,false ,dbms_sql.native);
dbms_sql.define_column(v_acct_bal_rec, 1, v_out1, 7 ;
rows_processed := dbms_sql.execute(v_acct_bal_rec);
LOOP
if dbms_sql.fetch_rows(v_acct_bal_rec) >; 0 then
begin
dbms_sql.column_value(v_acct_bal_rec, 1, v_out1);
end;
else
exit;
end if;
END LOOP;
dbms_sql.close_cursor(v_acct_bal_rec);
end;
PLS-00306: 调用 'PARSE' 时参数个数或类型错误 |
|