Oracle PL / SQL获取包含约束的参数类型

时间:2016-02-15 14:17:12

标签: oracle plsql

我有一个包和一个函数:

subtype boolean2 is boolean not null;

function test return boolean2 is
begin
    return true;
end;

我想获得返回值的类型。所以我做了以下查询:

select * from all_arguments where object_name='TEST';

结果类型为boolean。如何使用约束获取类型?或者是否有单独的查询来获取约束?

1 个答案:

答案 0 :(得分:0)

我不确定你能不能......

如果您编译了标识符,则可以看到它返回的是子类型而不是常规布尔值。但它没有给你这些限制。 你可以把它连接回_source并自己解析约束..但这似乎是一个坏主意。

见下面的修改示例

ALTER SESSION SET PLSCOPE_SETTINGS= 'IDENTIFIERS:ALL';

create or replace package x as

subtype boolean2 is boolean not null;

function test return boolean2;
function test2 return boolean;

end;
/

create or replace package body x as

function test return boolean2 is
begin
    return true;
end;

function test2 return boolean is
begin
    return true;
end;

end;
/

select * from USER_arguments
where package_name = 'X';

select * from USER_identifiers
where object_name = 'X'
order by object_type,line,col;