【发布时间】:2016-04-13 22:55:19
【问题描述】:
我正在使用 GetSchema 从我的 Oracle 环境中加载过程列表,但是我只看到根过程,没有包过程。不过,通过查看文档,我看不出它们还能如何被退回。有谁知道是否有过滤器/限制来获取包 procs,还是我应该调用不同的对象类型?
Dim ObjectType= "Procedures"
Dim Options As String()
Dim ObjectsTable = OracleConnection.GetSchema(ObjectType, Options)
“包”结果示例
?RefinedPackageSchemaData(10)
Count = 12
(0): {[OWNER, #REDACTED SCHEMA NAME#]}
(1): {[OBJECT_NAME, #REDACTED PACKAGE NAME#]}
(2): {[SUBOBJECT_NAME, ]}
(3): {[OBJECT_ID, 130652]}
(4): {[DATA_OBJECT_ID, ]}
(5): {[LAST_DDL_TIME, 4/27/2015 3:52:26 PM]}
(6): {[TIMESTAMP, 2015-04-27:15:52:26]}
(7): {[STATUS, VALID]}
(8): {[TEMPORARY, N]}
(9): {[GENERATED, N]}
(10): {[SECONDARY, N]}
(11): {[CREATED, 1/9/2015 9:47:50 AM]}
行数正好对应包的数量,而不是包+程序的组合
“PackageBody”结果示例
?RefinedPackageBodySchemaData(10)
Count = 12
(0): {[OWNER, #REDACTED SCHEMA NAME#]}
(1): {[OBJECT_NAME, #REDACTED PACKAGE NAME#]}
(2): {[SUBOBJECT_NAME, ]}
(3): {[OBJECT_ID, 130653]}
(4): {[DATA_OBJECT_ID, ]}
(5): {[LAST_DDL_TIME, 4/27/2015 4:19:44 PM]}
(6): {[TIMESTAMP, 2015-04-27:16:19:44]}
(7): {[STATUS, VALID]}
(8): {[TEMPORARY, N]}
(9): {[GENERATED, N]}
(10): {[SECONDARY, N]}
(11): {[CREATED, 1/9/2015 9:48:02 AM]}
行数正好对应包的数量,而不是包+程序的组合
【问题讨论】:
-
您不希望 ObjectType 为“Packages”吗?公共方法应该是
subobject_name值。 -
@JustinCave 在你的建议下我确实尝试过,但是我只得到相应的包,而不是包程序组合的完整列表
标签: .net oracle ado.net odp.net getschema