コードのエラーを下回っているのを助けてください。
ORA-06550: 行 20、列 33:
PLS-00306: '||'へのコールの引数の数またはタイプが正しくありません
ORA-06550: 行 20、列 12:
PL/SQL: ステートメントは無視されました
...条件 1: パラメータ化カーソルに明示的に値を入力すると、2 番目の FOR ループまで到達しません。印刷後、'Inside' ステートメントが実行されます。条件2.変数をパラメーターとして配置すると、上記のエラーが発生します。
DECLARE
/* First cursor */
CURSOR get_tables IS
SELECT DISTINCT * FROM src_table_list tbl ;
/* Second cursor */
CURSOR get_columns(v_table_name varchar2) IS
SELECT SUBSTR (SYS_CONNECT_BY_PATH (column_name, ','), 2) csv
FROM (SELECT column_name , ROW_NUMBER () OVER (ORDER BY column_name ) rn,
COUNT (*) OVER () cnt
FROM USER_TAB_COLUMNS where table_name = v_table_name)
WHERE rn = cnt
-- and col.sn = v_sn
START WITH rn = 1
CONNECT BY rn = PRIOR rn + 1;
BEGIN
FOR i IN get_tables LOOP
dbms_output.put_line( 'Inside ' );
FOR j IN get_columns(i.table_name) LOOP
dbms_output.put_line('SELECT '|| j ||'FROM'||i.table_name||' ;' );
dbms_output.put_line( ' ' );
END LOOP;
END LOOP;
END;
/