古いレガシープロセスを実行するために保管されている古いボックスの古い Oracle ストアドプロシージャにいくつかの変更を加える必要があります。データベースに接続できる唯一のツールは SQL Plus です。SQL Plus で編集するためにストアド プロシージャをメモリにロードするにはどうすればよいですか?
私がオンラインで見つけたチュートリアルでは、それがどのように行われるかを説明していません。:-(
古いレガシープロセスを実行するために保管されている古いボックスの古い Oracle ストアドプロシージャにいくつかの変更を加える必要があります。データベースに接続できる唯一のツールは SQL Plus です。SQL Plus で編集するためにストアド プロシージャをメモリにロードするにはどうすればよいですか?
私がオンラインで見つけたチュートリアルでは、それがどのように行われるかを説明していません。:-(
TOADの試用版をダウンロードする方がはるかに簡単です
以前の提案をスクラッチして、提案されたOracle SQL Developerリンクを試してみましたが、procの編集には非常にうまく機能します。
SQLPlusの場合、ストアド プロシージャの内容を表示し、それをファイルにスプールする必要があります (DCookie で提案されているように :-)) :
sqlplus> spool myprocname.sql;
sqlplus> select text from all_source where name = 'MYPROCNAME' and type = 'PROCEDURE' order by line;
sqlplus> quit;
次に、適切なエディターでローカル SQL ファイルを編集します。
次に、SQLPlusを使用して SQL ファイルを実行し、テスト用に proc を再構築します。
>sqlplus username/password@tnsnamesentry @myproc.sql
要するに、キースターの大きな痛み。:-)
関数を使用してコードを取得できますdbms_metadata.get_ddl
。all_sources よりもはるかに優れています。
spool /tmp/my_proc.txt
set long 100000
select dbms_metadata.get_ddl('PROCEDURE','NAME','OWNER') from dual;
spool off
Oracle SQL Developerをダウンロードしてインストールできませんか?それは無料です。
Unixの場合、TOra、(オープンソース)があります
SQL * Plusを使用してデータベースに接続できる場合は、SQLIDEを使用して接続できるはずです。とはいえ、SQL * Plusで編集するためにプロシージャを開くことはできませんが、コンパイルすることはできます。更新したprocをコマンドプロンプトに(必要に応じて1行ずつ)コピーしてコンパイルできます。
手動で現在のソースにアクセスする必要がある場合は、USER_SOURCEテーブルを照会できます。
ただし、IDEを使用してDBに接続することを検討することを強くお勧めします。
ボックスは、TNS リスナーが実行されていない HPUX であり、開発ツールのフリート全体をほぼ一掃します。ただし、DBA は OEM と呼ばれる管理ツールを使用して接続し、必要な変更を加えることができました。ご提案いただきありがとうございます。