2

古いレガシープロセスを実行するために保管されている古いボックスの古い Oracle ストアドプロシージャにいくつかの変更を加える必要があります。データベースに接続できる唯一のツールは SQL Plus です。SQL Plus で編集するためにストアド プロシージャをメモリにロードするにはどうすればよいですか?

私がオンラインで見つけたチュートリアルでは、それがどのように行われるかを説明していません。:-(

4

5 に答える 5

6

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

要するに、キースターの大きな痛み。:-)

于 2009-06-30T19:46:01.700 に答える
2

関数を使用してコードを取得できます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
于 2012-02-14T14:54:31.580 に答える
0

Oracle SQL Developerをダウンロードしてインストールできませんか?それは無料です。

Unixの場合、TOra、(オープンソース)があります

于 2009-06-30T19:46:33.977 に答える
0

SQL * Plusを使用してデータベースに接続できる場合は、SQLIDEを使用して接続できるはずです。とはいえ、SQL * Plusで編集するためにプロシージャを開くことはできませんが、コンパイルすることはできます。更新したprocをコマンドプロンプトに(必要に応じて1行ずつ)コピーしてコンパイルできます。

手動で現在のソースにアクセスする必要がある場合は、USER_SOURCEテーブルを照会できます。

ただし、IDEを使用してDBに接続することを検討することを強くお勧めします。

于 2009-06-30T19:48:45.597 に答える
0

ボックスは、TNS リスナーが実行されていない HPUX であり、開発ツールのフリート全体をほぼ一掃します。ただし、DBA は OEM と呼ばれる管理ツールを使用して接続し、必要な変更を加えることができました。ご提案いただきありがとうございます。

于 2009-06-30T20:29:20.380 に答える