VastbaseG100

基于openGauss内核开发的企业级关系型数据库。

Menu

DBMS_ASSERT

功能描述

该内置包用于验证输入值的属性。支持的内置包函数详见子程序

注意事项

无。

子程序

函数 描述
ENQUOTE_LITERAL 输入字符串满足下述要求时,在字符串首位两端补充单引号:
(1)必须保证除首尾两端的单引号之外,其余单引号必须紧邻成对出现,且成对紧邻出现时不能出现在字符串开头。
(2)若原始字符串两端已有单引号,则本接口不再额外在字符串两端补充单引号。
SCHEMA_NAME 判断输入字符串是否为有效的模式名,若有效则返回该模式名。
SQL_OBJECT_NAME 判断输入字符串是否为有效的SQL对象名,若有效则返回该对象名。
输入的对象名可以是如下情况:
(1)若输入的对象名是同义词名,则要求其基本对象必须存在。
(2)该函数可识别的 SQL对象包括表,视图,同义词,索引,序列,包,触发器,函数,存储过程。
(3)输入内容可带从属关系,支持的从属关系输入方式包括:
  • 模式名.表名
  • 模式名.视图名
  • 模式名.索引名
  • 模式名.序列名
  • 模式名.包名
  • 模式名.包名.函数名(SQL语句暂不支持)
  • 模式名.包名.存储过程名(SQL语句暂不支持)
  • 模式名.包名.变量名( SQL语句暂不支持)
  • 模式名.函数名
  • 模式名.存储过程名
  • 模式名.同义词
  • 模式名.表名.字段名
  • 模式名.视图名.字段名
  • 表名.字段名
  • 视图名.字段名
  • 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)