SPOOLファイル作成用PLSQL

PLSQLのお勉強用

#!/bin/ksh

for i in SERVER
do
 echo "sqlplus";
 sqlplus -s appadm/appadm @a $i  > ${i}.sql
done
SET SERVEROUTPUT ON;
SET FEEDBACK OFF;
SET verify off;
DECLARE
        cursor cursor_a is
                 select * from all_tab_columns where table_name = '&1' order by column_id;
        cursor_b cursor_a%ROWTYPE;
        nom number;
        aaa number;

        -- SETコマンドのためのPROCEDURE
        PROCEDURE echo_set IS
        BEGIN
                dbms_output.put_line('SET HEAD OFF');
                dbms_output.put_line('SET LINE 20000');
                dbms_output.put_line('SET PAGES 0');
                dbms_output.put_line('SET FEEDBACK OFF');
        END;

BEGIN
        --テーブル存在チェック
        SELECT 1 INTO aaa FROM SERVER where rownum <= 1;
        echo_set;


        SELECT count(1) INTO nom from all_tab_columns where table_name = 'SERVER' order by column_id;

                dbms_output.put_line('SELECT');
        for cursor_b in cursor_a loop
                dbms_output.put_line('  ' || cursor_b.COLUMN_NAME || ',');
                IF(cursor_a%ROWCOUNT = nom) THEN
                        dbms_output.put_line('  ' || cursor_b.COLUMN_NAME);
                END IF;
        end loop;
                dbms_output.put_line('FROM');
                dbms_output.put_line('SERVER');

END;
/
exit;