sqlplusを使用してoracleデータベースに接続するときに、関数またはプロシージャの本体をダンプできますか。sqlplusで関数またはプロシージャの本体をダンプする
8
A
答えて
7
select
text
from
user_source
where
type = 'PROCEDURE'
and
name='YOURPROCEDURENAME'
order by
line;
5
用途:
SELECT us.name,
us.type,
us.text
FROM USER_SOURCE us
WHERE us.type IN ('PROCEDURE', 'FUNCTION')
ORDER BY name, line
3
別の解決策は、あなたがテーブル、インデックスと制約を含むすべてのメタデータのためにこれを使用することができますDBMS_METADATA API
set line 200
set long 10000
select dbms_metadata.ddl('PACKAGE','Package Name') from dual;
を使用することです。
+0
他の仕組みにも 'set line/set long'が必要なので、アップアップしています。 – monojohnny
+0
@monojohnny、他の機構には 'set long'は必要ありません*。それでも、dbms_metadata *は*行く方法です。imho。 –
同様に、type = 'FUNCTION'およびname = 'YOURFUNCTIONNAME'。 – dacracot
いくつかの異なるスキーマが設定されています。私はそれらを扱うために何か特別なことをしますか? –
特定のスキーマにログインすることができ、user_sourceにはそのスキーマのソースのみが含まれます。または、DBAとしてログインすることもできます。dba_sourceテーブルには、where句に含めることができる所有者列もあります。 – dacracot