私が書いたスマート・プロシージャを使用したいが、格納しないでください。例えば、ここにテーブルの主キーを取得することを選択し、このかなり大きいです:oracleプロシージャを作成する方法はありますが、格納する方法はありません
SELECT cols.table_name, cols.column_name, cols.position, cons.status, cons.owner
FROM all_constraints cons, all_cons_columns cols
WHERE cols.table_name = 'TABLE_NAME'
AND cons.constraint_type = 'P'
AND cons.constraint_name = cols.constraint_name
AND cons.owner = cols.owner
ORDER BY cols.table_name, cols.position;
私もそれを私はテーブルの制約を必要とするたびに入力しないで、これを覚えておく必要はありません。しかし、私はこれをDBにするためのプロシージャを作成したくないです。なぜなら、それはプロードされたDBであり、誰も私のプロシージャを必要としないからです。私だけ。ちょうど開発のため。
SQL> declare procedure hello as begin dbms_output.put_line('Hello world!'); end; begin hello; end;
2/
Hello world!
PL/SQL procedure successfully completed.
SQL> hello;
SP2-0042: unknown command "hello" - rest of line ignored.
...ので、私は、コマンドラインからhello関数を宣言して定義することができます。私は今の私どこだからここ
です。私は宣言の後のbegin - endブロックから呼び出すことができますが、その後はhelloプロシージャはなくなりました。
質問:2番目の「こんにちは」を作るための解決策がありますか?私は賢明で有益な手続きを作成することができますし、DB自体にゴミを入れないでください。
これがうまくいくならば、私はそのファイルを作成し、sqlplusのエイリアスを起動時にそのファイルを実行するようにします。
別のスキーマを作成してそこにプロシージャを置くことができます。あなたはプロダクションユーザーを怒らせません.... –
あなたはプロダクトDBで開発しています:) –
大丈夫です、それは刺激されませんが、他の多くの開発者がそれを使用し、それを汚染することは望ましくありません。 – torbatamas