PL/SQLを使用して特定のプロシージャで使用済列のリストを取得できますか?私は私のOracle DBで500以上の手順をチェックし、それらに使用されているすべての列を印刷する必要があります。ストアド・プロシージャで使用される列の検索方法
-1
A
答えて
1
驚くべきことに、Oracleが鑑賞するために利用できるPL/SQLでの計算テーブル依存関係作りを行います。
select * from user_dependencies -- can also use all_ or dba_dependencies
where type = 'PROCEDURE' and REFERENCED_TYPE = 'TABLE';
をしかし、あなたが本当にカラムレベルの依存関係が必要な場合、私はそれがはるかに難しいだろうと思います。ここでは、その問題に関するいくつかの問題を説明する非常に簡単な答えがあります。
したがって、既存の列名と一致するすべての文字列を検索することができます。私はこのアプローチで数十の問題を考えることができます。上記のコメント者は、あなたが見たいコールスタックの深さのように、それらのいくつかについて言及しました。また、列の名前に応じて、あいまいな名前(SID、MODIFIED_DATEなど)が重複したエントリを生成します。同じスペルを持つ列名とローカル変数への実際の参照を区別する方法はありません。またはコメント。また、ビューやシノニムを使用すると、検索結果が不正になる可能性があります。それは本当に難しい質問のようです。私はからuser_dependenciesのテーブルがあなたのニーズに十分であることを願っています。
関連する問題
- 1. sybaseストアド・プロシージャで使用されるテーブルとカラムのリストを検索するクエリ
- 2. Mysqlストアド・プロシージャ列型参照
- 3. エンティティ・フレームワーク内のストアド・プロシージャを使用
- 4. ストアド・プロシージャ・アクセス用のHibernate
- 5. Oracle - ストアド・プロシージャを別のストアド・プロシージャのループで呼び出す
- 6. Netezzaストアド・プロシージャ・エラー
- 7. 複数のレコードセットを返すエンティティ・フレームワークでのストアド・プロシージャの使用方法
- 8. エンティティ・フレームワークのストアド・プロシージャ
- 9. 検索された列のデータ型を検索する方法
- 10. Oracle SQLのストアド・プロシージャでXMLファイルを読み取る方法は?
- 11. 実行システムコマンド、ストアド・プロシージャ
- 12. Oracleストアド・プロシージャ・ドロップ・ユーザー
- 13. ループ・アップデートSQLストアド・プロシージャ
- 14. JDBCストアド・プロシージャへのコールでNULLが返される
- 15. ストアド・プロシージャを開き、SQL * Plusで編集する方法
- 16. oracleでストアド・プロシージャを作成する方法
- 17. エンティティ・フレームワークのストアド・プロシージャの出力を解析する方法は?
- 18. Java:oracleデータベースのストアド・プロシージャをコール
- 19. PL/SQLストアド・プロシージャのエラー
- 20. ストアド・プロシージャのinsert into select
- 21. PHPからのコール・ストアド・プロシージャ
- 22. PL/SQLストアド・プロシージャのコンパイルエラー
- 23. 別のINSERTストアド・プロシージャの実行中にINSERTストアド・プロシージャをコールし、その戻されたIDを取得する方法はありますか。
- 24. JDBCを使用してストアド・プロシージャを実行できません
- 25. ストアド・プロシージャは、LIMIT式で変数を使用して
- 26. Oracleストアド・プロシージャをテストする最も簡単な方法
- 27. ストアド・プロシージャをSiebelサーバー・ジョブとして実行する方法
- 28. Oracle - ストアド・プロシージャを使用してテキスト・ファイルを作成する
- 29. エンティティ・フレームワーク+ SQL Anywhere 11 +ストアド・プロシージャ
- 30. PL/SQL複合ストアド・プロシージャ
他のプロシージャがクエリからいくつかの列をローカル変数にフェッチし、これらの変数をプロシージャに渡すとどうなりますか?いくつかのクエリが 'column1 + column2 * column3 As new_alias'のような表現を計算し、このエイリアスがあなたの手続きに渡されるとどうなりますか? – krokodilko
あなたは奇妙な仕事をしています。この 'select * from some_table'のようにsys_refcursorをオープンしたプロシージャを持っていて、別の名前のフィールドがあるレコードを読み込むとします。この場合、どの列が使用されると考えられますか? – wolfrevokcats