gpt4 book ai didi

sql - 获取 ORACLE 编程对象定义

转载 作者:行者123 更新时间:2023-12-04 19:29:04 25 4
gpt4 key购买 nike

假设我有一个包含包的 ORACLE 模式。
该包定义了类型、函数、过程等:

CREATE PACKAGE...
DECLARE
FUNCTION ...
PROCEDURE ...
END;

在没有包装包的情况下,是否可以执行查询来获取这些单个对象的定义?

最佳答案

如果需要包的过程/功能,可以使用 user_procedures :

Create Package package_test As
Procedure dummy( x In Number );
Function dummy2 Return Number;
End package_test;

选择 object_name、procedure_name
来自 user_procedures
其中 object_name = 'PACKAGE_TEST';

返回
PACKAGE_TEST    DUMMY
PACKAGE_TEST DUMMY2
PACKAGE_TEST

要获取参数,请从 user_arguments 中选择.

如果你想要你的包/过程/函数的代码,使用 user_source 对于您用户的对象, all_source对于您的用户授予的对象,以及 dba_source对于所有对象:
Select *
From user_source
Where name = 'YOUR_TEST'
And type = 'PROCEDURE';

如果您创建了过程 your_test前:
Create Procedure your_test As
Begin
dbms_output.put_line('test');
End your_test;

它返回
YOUR_TEST  PROCEDURE  1  Procedure your_test As
YOUR_TEST PROCEDURE 2 Begin
YOUR_TEST PROCEDURE 3 dbms_output.put_line('test');
YOUR_TEST PROCEDURE 4 End your_test;

关于sql - 获取 ORACLE 编程对象定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2771458/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com