2009-12-11 5 views

答えて

7
select 
    text 
from 
    user_source 
where 
    type = 'PROCEDURE' 
and 
    name='YOURPROCEDURENAME' 
order by 
    line; 
+0

同様に、type = 'FUNCTION'およびname = 'YOURFUNCTIONNAME'。 – dacracot

+0

いくつかの異なるスキーマが設定されています。私はそれらを扱うために何か特別なことをしますか? –

+0

特定のスキーマにログインすることができ、user_sourceにはそのスキーマのソースのみが含まれます。または、DBAとしてログインすることもできます。dba_sourceテーブルには、where句に含めることができる所有者列もあります。 – dacracot

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。 –

関連する問題