Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Oracle 获取包中函数的DDL_Oracle_Oracle Sqldeveloper - Fatal编程技术网

Oracle 获取包中函数的DDL

Oracle 获取包中函数的DDL,oracle,oracle-sqldeveloper,Oracle,Oracle Sqldeveloper,在Oracle中,是否有任何方法可以获取不同用户下的包中函数的DDL?我可以在SQLDeveloper中的“其他用户”下列出的一个用户下看到该包。我尝试过使用dbms\u元数据。get\u ddl函数: SELECT dbms_metadata.get_ddl('PACKAGE', 'MY_PACKAGE', 'OTHER_USER') FROM DUAL 但我得到了以下错误: ORA-31603:在架构“其他用户”中找不到包类型的对象“我的包” 对于get_ddl函数的第一个参数,我尝试了P

在Oracle中,是否有任何方法可以获取不同用户下的包中函数的DDL?我可以在SQLDeveloper中的“其他用户”下列出的一个用户下看到该包。我尝试过使用
dbms\u元数据。get\u ddl
函数:

SELECT dbms_metadata.get_ddl('PACKAGE', 'MY_PACKAGE', 'OTHER_USER') FROM DUAL
但我得到了以下错误:

ORA-31603:在架构“其他用户”中找不到包类型的对象“我的包”


对于get_ddl函数的第一个参数,我尝试了PACKAGE_SPEC和PACKAGE_BODY,但这似乎没有帮助。

不确定这是否会帮助任何人,这是一个老问题,但我使用这个查询(来自Java)从服务器上删除所有过程和函数,以便我们可以将它们放在GIT中。我用的是12C

with x as 
(
  SELECT owner, object_name, object_type
    FROM dba_objects
  WHERE owner LIKE 'OWNER_NAME_HERE'
    AND object_type IN ('PROCEDURE',  'FUNCTION')
)
SELECT  DBMS_METADATA.get_ddl (x.object_type, x.object_name, x.owner) as ddlcode FROM x;

不确定这是否对任何人都有帮助,这是一个老问题,但我使用这个查询(来自Java)从服务器上删除所有的过程和函数,以便将它们放在GIT中。我用的是12C

with x as 
(
  SELECT owner, object_name, object_type
    FROM dba_objects
  WHERE owner LIKE 'OWNER_NAME_HERE'
    AND object_type IN ('PROCEDURE',  'FUNCTION')
)
SELECT  DBMS_METADATA.get_ddl (x.object_type, x.object_name, x.owner) as ddlcode FROM x;

您可以使用get\u dll从包中提取代码,但您应该提供正确类型的对象(例如,package\u BODY可以获取除head/description之外的所有内容)

您可以使用get\u dll从包中提取代码,但您应该提供正确类型的对象(例如,PACKAGE_BODY可以获取除head/description之外的所有内容)

由于您在SQL Developer中,因此也可以使用DDL命令


这也可以在SQLcl的命令行中找到,因为您是在sqldeveloper中,所以也可以使用DDL命令


这也可以在SQLcl的命令行中找到。你能在SQL Developer和/或all_source中看到包的源代码吗?你是要整个包的代码还是特定的功能?是的,我可以打开包并通过SQL Developer中的connections/object explorer窗口导航来查看源代码r、 如果可能的话,我真的只寻找一个函数的代码。你有吗?遗憾的是,你只能得到这个包,而不是一个特定的函数。你需要以某种方式解析这个函数。你能在SQL Developer和/或all_source中看到这个包的源代码吗?你是要整个包的代码还是要其他的一个特定的函数?是的,我可以通过打开包并通过SQL Developer中的“连接/对象资源管理器”窗口导航来查看源代码。如果可能的话,我真的只寻找一个函数的代码。你有吗?遗憾的是,你只能得到包,而不是特定的函数。你需要解析这个函数好极了,这正是我需要的。好极了,这正是我需要的。