我有一个包和一个函数:
subtype boolean2 is boolean not null;
function test return boolean2 is
begin
return true;
end;
我想获得返回值的类型。所以我做了以下查询:
select * from all_arguments where object_name='TEST';
结果类型为boolean
。如何使用约束获取类型?或者是否有单独的查询来获取约束?
答案 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;