DBMS_ASSERT
功能描述
该内置包用于验证输入值的属性。支持的内置包函数详见子程序。
注意事项
无。
子程序
函数 | 描述 |
---|---|
ENQUOTE_LITERAL | 输入字符串满足下述要求时,在字符串首位两端补充单引号: (1)必须保证除首尾两端的单引号之外,其余单引号必须紧邻成对出现,且成对紧邻出现时不能出现在字符串开头。 (2)若原始字符串两端已有单引号,则本接口不再额外在字符串两端补充单引号。 |
SCHEMA_NAME | 判断输入字符串是否为有效的模式名,若有效则返回该模式名。 |
SQL_OBJECT_NAME | 判断输入字符串是否为有效的SQL对象名,若有效则返回该对象名。 输入的对象名可以是如下情况: (1)若输入的对象名是同义词名,则要求其基本对象必须存在。 (2)该函数可识别的 SQL对象包括表,视图,同义词,索引,序列,包,触发器,函数,存储过程。 (3)输入内容可带从属关系,支持的从属关系输入方式包括: |
ENQUOTE_LITERAL函数
语法格式
DBMS_ASSERT.ENQUOTE_LITERAL(
str VARCHAR2);
参数说明
str:要引用的字符串。
示例
select DBMS_ASSERT.ENQUOTE_LITERAL('abcedf') from dual;
返回结果为:
enquote_literal
-----------------
'abcedf'
(1 row)
SCHEMA_NAME函数
语法格式
DBMS_ASSERT.SCHEMA_NAME (
str VARCHAR2 CHARACTER SET ANY_CS);
参数说明
str:有效的模式名称。
示例
1、创建模式。
create schema testname;
2、判断是否是有效的模式名。
select DBMS_ASSERT.SCHEMA_NAME('testname');
返回结果为:
schema_name
-------------
testname
(1 row)
SQL_OBJECT_NAME函数
语法格式
DBMS_ASSERT.SQL_OBJECT_NAME (
str VARCHAR2 CHARACTER SET ANY_CS);
参数说明
str:有效的模式名称。
示例
1、创建函数test_f。
create function test_f(int) returns int as $$
begin
raise notice 'test_f%',$1;
return $1;
end $$ language plpgsql;
2、调用SQL_OBJECT_NAME函数。
select DBMS_ASSERT.SQL_OBJECT_NAME('test_f');
返回结果为:
sql_object_name
-----------------
test_f
(1 row)