金仓数据库 KingbaseES参考手册 (8. 函数(九))

打印 上一主题 下一主题

主题 758|帖子 758|积分 2274

8.299. SCALE

   用法:
   
  1. scale(numeric)
复制代码
   功能:
     SCALE返回参数的精度(小数点后的位数)。
    例子:
  1. SELECT scale(8.41);
复制代码
8.300. SCORE

   用法:
   
  1. SCORE(lable number)
复制代码
  输入参数:
       lable:表示第几个contains函数的标签。
      输出:
       CONTAINS查询生成的分数值
       功能:
     返回CONTAINS查询生成的分数值。现在该函数只支持score(1)。
    例子:
     
    8.301. SESSION_ID

   用法:
   
  1. session_id()
复制代码
   功能:
     SESSION_ID返回当前会话的整数。
    例子:
     以下示例返回当前会话的整数:
  
  1. SELECT session_id()
  2. ;+------------+| session_id |+============+| 4          |+------------+
复制代码
   8.302. SESSION_USER

   用法:
  1. session_user
复制代码
功能:
     SESSION_USER返回当前会话的用户名。返回类型为NAME。
    例子:
     以下示例返回当前会话的用户名:
  
  1. SELECT session_user
  2. ;+--------------+| SESSION_USER |+==============+| U1           |+--------------+
复制代码
   8.303. SESSIONTIMEZONE

   用法:
  1. sessiontimezone
复制代码
功能:
     SESSIONTIMEZONE返回当前会话的时区。返回类型是时区偏移量(格式为字符类型'[+|-]TZH:TZM')或时区地区名称,具体取决于用户如安在近来的ALTER SESSION语句中指定会话时区值。
   笔记:纵然客户端操作体系利用定名时区,默认客户端会话时区也是一个偏移量。假如您希望默认会话时区利用定名时区,则将ORA_SDTZ客户端环境中的变量设置为 KingBase 时区地区名称。
    例子:
     以下示例返回当前会话的时区:
   SELECT sessiontimezone
FROM DUAL;
    SESSION
  -08:00
     8.304. SETSEED

   用法:
   
  1. setseed(dp)
复制代码
  输入参数:
       dp:random函数的种子值(-1.0和1.0), 包罗界限值。 类型为double precision。
       功能:
     为后续要利用的random函数设置种子。
    例子:
   
  1. select setseed(0.12);
  2. setseed
  3. ---------
  4. (1 row)
复制代码
   8.305. SETVAL

   用法:
   
  1. SETVAL(regclass, bigint)
复制代码
  输入参数:
       regclass:序列的名子。 bigint: 设置的值
      输出:
       返回设定值
       功能:
     设定指定序列的当前值。
    例子:
   
  1. SELECT setval('sequence_test'::text, 32);
  2. setval
  3. --------
  4.   32
  5. (1 row)
复制代码
   8.306. SETWEIGHT

   用法:
   
  1. setweight(vector tsvector, weight "char")
复制代码
   功能:
     SETWEIGHT为vector的每一个元素分配权重。
    例子:
   
  1. SELECT setweight('fat:2,4 cat:3 rat:5B'::tsvector,'A');
复制代码
   8.307. SHA224

   用法:
   
  1. sha224(bytea)
复制代码
   功能:
     SHA224用于盘算二进制字符串的SHA-224哈希值。
    例子:
     以下示例返回盘算二进制字符串的SHA-224哈希值:
  
  1. SELECT SHA224('abc'::bytea);
  2. +------------------------------------------------------------+
  3. | SHA224                                                     |
  4. +============================================================+
  5. | \x23097d223405d8228642a477bda255b32aadbce4bda0b3f7e36c9da7 |
  6. +------------------------------------------------------------+
复制代码
   8.308. SHA256

   用法:
   
  1. sha256(bytea)
复制代码
   功能:
     SHA256用于盘算二进制字符串的SHA-256哈希值。
    例子:
     以下示例返回盘算二进制字符串的SHA-256哈希值:
  
  1. SELECT SHA256('abc'::bytea);
  2. +--------------------------------------------------------------------+
  3. | SHA256                                                             |
  4. +====================================================================+
  5. | \xba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad |
  6. +--------------------------------------------------------------------+
复制代码
   8.309. SHA384

   用法:
   
  1. sha384(bytea)
复制代码
  功能:
       SHA384用于盘算二进制字符串的SHA-384哈希值。
       例子:
     以下示例返回盘算二进制字符串的SHA-384哈希值:
  
  1. SELECT SHA384('abc'::bytea);
  2. +----------------------------------------------------------------------------------------------------+
  3. | SHA384                                                                                             |
  4. +====================================================================================================+
  5. | \xcb00753f45a35e8bb5a03d699ac65007272c32ab0eded1631a8b605a43ff5bed8086072ba1e7cc2358baeca134c825a7 |
  6. +----------------------------------------------------------------------------------------------------+
复制代码
   8.310. SHA512

   用法:
   
  1. sha512(bytea)
复制代码
   功能:
     SHA512用于盘算二进制字符串的SHA-512哈希值。
    例子:
     以下示例返回盘算二进制字符串的SHA-512哈希值:
  
  1. SELECT SHA512('abc'::bytea);
  2. +------------------------------------------------------------------------------------------------------------------------------------+
  3. | SHA512                                                                                                                             |
  4. +====================================================================================================================================+
  5. | \xddaf35a193617abacc417349ae20413112e6fa4e89a97ea20a9eeee64b55d39a2192992a274fc1a836ba3c23a3feebbd454d4423643ce80e2a9ac94fa54ca49f |
  6. +------------------------------------------------------------------------------------------------------------------------------------+
复制代码
   8.311. SIGN

   用法:
   
  1. sign({dp|numeric})
复制代码
   功能:
     SIGN返回 的符号n。此函数将任何数字数据类型或任何可以隐式转换为 的非数字数据类型作为参数NUMBER,并返回NUMBER。
   对于NUMBER类型的值,符号为:
   

  • -1 假如n<0
  • 0 假如n= 0
  • 1 假如n>0
   对于二进制浮点数 (BINARY_FLOAT和BINARY_DOUBLE),此函数返回数字的符号位。符号位是:
   

  • -1 假如n<0
  • +1 假如n>=0 或n=NaN
    例子:
     以下示例表明函数 ( -15) 的参数 <0:
  
  1. SELECT SIGN(-15) "Sign" FROM DUAL;
  2. +------+
  3. | Sign |
  4. +======+
  5. | -1   |
  6. +------+
复制代码
   8.312. SIN

   用法:
   
  1. sin({dp|numeric})
复制代码
   功能:
     SIN返回(以弧度表示的角度) n的正弦值。
   此函数将任何数值数据类型或任何可以隐式转换为数值数据类型的非数值数据类型作为参数。假如参数是BINARY_FLOAT,则函数返回BINARY_DOUBLE。否则,函数返回与参数相同的数值数据类型。
    例子:
     以下示例返回 30 度的正弦值:
  
  1. SELECT SIN(30 * 3.14159265359/180) "Sine of 30 degrees" FROM DUAL;
  2. +--------------------+
  3. | Sine of 30 degrees |
  4. +====================+
  5. | .5                 |
  6. +--------------------+
复制代码
   8.313. SINH

   用法:
   
  1. sinh({dp|numeric})
复制代码
   功能:
     SINH返回n的双曲正弦。
   此函数将任何数值数据类型或任何可以隐式转换为数值数据类型的非数值数据类型作为参数。假如参数是BINARY_FLOAT,则函数返回BINARY_DOUBLE。否则,函数返回与参数相同的数值数据类型。
    例子:
  以下示例返回 1 的双曲正弦:
   
  1. SELECT SINH(1) "Hyperbolic sine of 1" FROM DUAL;
  2. +----------------------+
  3. | Hyperbolic sine of 1 |
  4. +======================+
  5. | 1.17520119           |
  6. +----------------------+
复制代码
   8.314. SPLIT_PART

   用法:
   
  1. split_part(string text, delimiter text, field int)
复制代码
   功能:
     函数返回给定字符串expr1中按给定字符expr2切分后的字符串数组中的第n个字符串。此中,指定返回的字符串序号n必须大于0
    例子:
     以下示例返回 3 平方:
  
  1. SELECT SPLIT_PART('joeuser@mydatabase','@m',2);
  2. +-------------+
  3. | split_part  |
  4. +=============+
  5. | ydatabase   |
  6. +-------------+
复制代码
   8.315. SQRT

   用法:
   
  1. sqrt(n)
复制代码
   功能:
     SQRT返回n的平方根。
   此函数将任何数值数据类型或任何可以隐式转换为数值数据类型的非数值数据类型作为参数。该函数返回与参数的数值数据类型相同的数据类型。
   也可以看看:
      

  • 假如n分析为 a NUMBER,则该值n不能为负。SQRT返回一个实数。
  • 假如n分析为二进制浮点数(BINARY_FLOAT或BINARY_DOUBLE):
  • 假如n>= 0,则结果为正。
  • 假如n= -0,则结果为 -0。
  • 假如n< 0,则结果为NaN。
       例子:
     以下示例返回 26 的平方根:
  
  1. SELECT SQRT(26) "Square root" FROM DUAL;
  2. +-------------+
  3. | Square root |
  4. +=============+
  5. | 5.09901951  |
  6. +-------------+
复制代码
   8.316. STATEMENT_TIMESTAMP

   用法:
  

  功能:
     STATEMENT_TIMESTAMP返回当前的日期和时间。返回类型为timestamp with time zone。
    例子:
     以下示例返回当前的日期和时间:
   SELECT STATEMENT_TIMESTAMP();
    STATEMENT_TIMESTAMP
  2022-06-28 16:02:08.521282+00
     8.317. STDDEV

   用法:
  

  也可以看看:“分析函数”获取有关语法、语义和限制的信息
  目的:STDDEV返回一组数字expr的样本标准差。这是一组数字,您可以将其用作聚合函数和分析函数。它与STDDEV_SAMP的不同之处在于,当只有一行输入时STDDEV返回零,而STDDEV_SAMP返回null不同。
  KingBase数据库将标准差盘算为为聚合函数VARIANCE界说的方差的平方根。
  此函数将任何数值数据类型或任何可以隐式转换为数值数据类型的非数值数据类型作为参数。该函数返回与参数的数值数据类型相同的数据类型。
  假如您指定DISTINCT,那么您只能指定analytic_clause字句的query_partition_clause字句。不允许利用order_by_clause字句和windowing_clause字句。
  也可以看看:
  “聚合函数”、VARIANCE和STDDEV_SAMP
  “关于 SQL 表达式”以获取有关有用形式的信息expr
  聚合示例
  以下示例返回样本hr.employees表中薪水的标准差:
  SELECT STDDEV(salary) "Deviation" FROM employees;
   Deviation
  3909.36575
   分析示例
  以下示例中的查询返回样本表中 Department 80 工资的累积标准差,按以下hr.employees次序排序hire_date:
  SELECT last_name, salary, STDDEV(salary) OVER (ORDER BY hire_date) "StdDev" FROM employees WHERE department_id = 30 ORDER BY last_name, salary, "StdDev";
   LAST_NAME
  SALARY
  StdDev
  Baida
  2900
  4035.26125
  Clomenares
  2500
  3362.58829
  Himuro
  2600
  3649.2465
  Khoo
  3100
  5586.14357
  Raphaely
  11000
  0
  Tobias
  2800
  4650.0896
   8.318. STDDEV_POP

   用法:
  

  也可以看看:“分析函数”获取有关语法、语义和限制的信息
  目的:STDDEV_POP盘算总体标准差并返回总体方差的平方根。您可以将其用作聚合函数和分析函数。
  此函数将任何数值数据类型或任何可以隐式转换为数值数据类型的非数值数据类型作为参数。该函数返回与参数的数值数据类型相同的数据类型。
  该函数与函数的平方根相同VAR_POP。当VAR_POP返回 null 时,此函数返回 null。
  也可以看看:
  “聚合函数”和VAR_POP
  “关于 SQL 表达式”以获取有关有用形式的信息expr
  聚合示例
  以下示例返回样本表中贩卖额的总体和样本标准差sh.sales:
  SELECT STDDEV_POP(amount_sold) "op", STDDEV_SAMP(amount_sold) "Samp" FROM sales;
   Pop
  Samp
  896.355151
  896.355592
   分析示例
  以下示例hr.employees按部门返回样本表中薪金的总体标准差:
  SELECT department_id, last_name, salary, STDDEV_POP(salary) OVER (PARTITION BY department_id) AS pop_std FROM employees ORDER BY department_id, last_name, salary, pop_std;
   DEPARTMENT_ID
  LAST_NAME
  SALARY
  POP_STD
  10
  Whalen
  4400
  0
  20
  Fay
  6000
  3500
  20
  Hartstein
  13000
  3500
  30
  Baida
  2900
  3069.6091
  100
  Urman
  7800
  1644.18166
  110
  Gietz
  8300
  1850
  110
  Higgins
  12000
  1850
  Grant
  7000
  0
   8.319. STDDEV_SAMP

   用法:
  

  也可以看看:“分析函数”获取有关语法、语义和限制的信息
  目的:STDDEV_SAMP盘算累积样本标准差并返回样本方差的平方根。您可以将其用作聚合函数和分析函数。
  此函数将任何数值数据类型或任何可以隐式转换为数值数据类型的非数值数据类型作为参数。该函数返回与参数的数值数据类型相同的数据类型。
  该函数与函数的平方根相同VAR_SAMP。当VAR_SAMP返回 null 时,此函数返回 null。
  也可以看看:
  “聚合函数”和VAR_SAMP
  “关于 SQL 表达式”以获取有关有用形式的信息expr
  聚合示例
  请参阅STDDEV_POP的聚合示例。
  分析示例
  以下示例employees按部门返回表中薪水的样本标准差:
  SELECT department_id, last_name, hire_date, salary, STDDEV_SAMP(salary) OVER (PARTITION BY department_id ORDER BY hire_date ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) AS cum_sdev FROM employees ORDER BY department_id, last_name, hire_date, salary, cum_sdev;
   DEPARTMENT_ID
  LAST_NAME
  HIRE_DATE
  SALARY
  CUM_SDEV
  10
  Whalen
  17-SEP-03
  4400
  20
  Fay
  17-AUG-05
  6000
  4949.74747
  20
  Hartstein
  17-FEB-04
  13000
  30
  Baida
  24-DEC-05
  2900
  4035.26125
  30
  Colmenares
  10-AUG-07
  2500
  3362.58829
  30
  Himuro
  15-NOV-06
  2600
  3649.2465
  30
  Khoo
  18-MAY-03
  3100
  5586.14357
  30
  Raphaely
  07-DEC-02
  11000
  100
  Greenberg
  17-AUG-02
  12008
  2126.9772
  100
  Popp
  07-DEC-07
  6900
  1804.13155
  100
  Sciarra
  30-SEP-05
  7700
  1929.76233
  100
  Urman
  07-MAR-06
  7800
  1788.92504
  110
  Gietz
  07-JUN-02
  8300
  2621.95194
  110
  Higgins
  07-JUN-02
  12008
  Grant
  24-MAY-07
  7000
   8.320. STR_TO_DATE

   功能:
     把字符串按照指定格式转换成时间戳。返回类型为timestamp without time zone。
    例子:
     以下示例返回当前的日期和时间:
  
  1. select str_to_date('2022-03-14 13:14:15','yyyy-MM-dd hh24:mi:ss') from dual;
  2.   str_to_date
  3. ------------------
  4. 2022-03-14 13:14:15
复制代码
   8.321. STR_VALID

   用法:
   
  1. str_valid(`expr1 text, expr2 oid)
复制代码
   功能:
     STR_VALID判定所给定的表达式是否为正确的日期时间。
   参数列表有两个参数,第一个参数须要输入text类型字符串,第二个参数输入时间类型OID。
    例子:
     以下示例判定所给定的表达式是否为正确的日期时间:
  
  1. SELECT STR_VALID('1981-10-19AD', CAST('DATE' AS REGTYPE));
  2. +-----------+
  3. | STR_VALID |
  4. +===========+
  5. | t         |
  6. +-----------+
复制代码
   8.322. STRING_AGG

   用法:
   
  1. string_agg(expr1, delimiter)
复制代码
  输入参数:
       expr1:用于聚集的表达式,通常为列表达式。类型为text大概bytea. delimiter: 聚集表达式中心的分隔符。
      输出:
       聚集后的expr1表达式。类型与expr1类型相同。
       功能:
     非空输入连接成一个串,用delimiter分隔,。
    例子:
   
  1. SELECT string_agg(a,',') FROM (values('aaaa'),('bbbb'),('cccc')) g(a);
  2. string_agg
  3. ----------------
  4. aaaa,bbbb,cccc
  5. (1 row)
复制代码
   8.323. STRING_TO_ARRAY

   用法:
   
  1. STRING_TO_ARRAY(expr1,delimiter [,null_expr])
复制代码
  输入参数:
       expr1:用于组成数组元素的表达式,通常为列表达式。大概常量表达式. delimiter: expr1中的各数组元素的分隔符。 null_expr: expr1中的null元素等价符。
      输出:
       expr1转换后的数组。
       功能:
     利用提供的分隔符将和可选的空串字符划分成数组元素。
    例子:
   
  1. SELECT string_to_array('1,2,3,4,*,6', ',', '*');
  2. string_to_array
  3. ------------------
  4. {1,2,3,4,NULL,6}
  5. (1 row)
复制代码
   8.324. STRIP

   用法:
   
  1. strip(tsvector)
复制代码
   功能:
     STRIP返回删除位置和权重后的 tsvector 。返回类型为 tsvector。
    例子:
     以下示例返回删除位置和权重后的 tsvector :
  
  1. SELECT STRIP('fat:2,4 cat:3 rat:5A'::tsvector);
  2. +-------------------+
  3. | STRIP             |
  4. +===================+
  5. | 'cat' 'fat' 'rat' |
  6. +-------------------+
复制代码
   8.325. STRPOS

   用法:
  目的:函数返回字符串expr1中,第一次出现expr2字符串的起始位置。
  SELECT STRPOS('abcdefgb','de');
   strpos
  4
   8.326. SUBSTR

   用法
  substr:
  

  目的:这些SUBSTR函数返回 的一部分char,从字符开始position,substring_length字符长。SUBSTR利用输入字符集界说的字符盘算长度。SUBSTRB利用字节而不是字符。SUBSTRC利用 Unicode 完备字符。SUBSTR2利用 UCS2 代码点。SUBSTR4利用 UCS4 代码点。
  

  • 假如position为 0,则将其视为 1。
  • 假如position为正,则 KingBase 数据库从头开始计数char以查找第一个字符。
  • 假如position为负数,则 KingBase 从 末端倒数char。
  • 假如substring_length省略,则 KingBase 将所有字符返回到char. 假如substring_length小于 1,则 KingBase 返回 null。
  char可以是任何数据类型CHAR, VARCHAR, NCHAR, NVARCHAR, CLOB, 或NCLOB. 例外是SUBSTRC,SUBSTR2和SUBSTR4, 不允许char是CLOBor NCLOB。两者position和都substring_length必须是数据类型NUMBER,大概任何可以隐式转换为的数据类型NUMBER,并且必须分析为整数。返回值与 的数据类型相同char,除了CHAR参数返回一个VARCHAR值,而NCHAR参数NVARCHAR返回一个值。作为参数传递的浮点数SUBSTR会主动转换为整数。
  例子:以下示例返回“ABCDEFG”的几个指定子字符串:
  SELECT SUBSTR('ABCDEFG',3,4) "Substring" FROM DUAL;
   Substring
  CDEF
   SELECT SUBSTR('ABCDEFG',-5,4) "Substring" FROM DUAL;
   Substring
  CDEF
   Assume a double-byte database character set:
  SELECT SUBSTRB('ABCDEFG',5,4.2) "Substring with bytes" FROM DUAL;
   Substring with bytes
  CD
   8.327. SUBSTRB

   用法:
  substrb:
  

  图 8.327.1 功能: 这些SUBSTR函数返回 的一部分char,从字符开始position,substring_length字符长。SUBSTR利用输入字符集界说的字符盘算长度。SUBSTRB利用字节而不是字符。SUBSTRC利用 Unicode 完备字符。SUBSTR2利用 UCS2 代码点。SUBSTR4利用 UCS4 代码点。
     

  • 假如position为 0,则将其视为 1。
  • 假如position为正,则 KingBase 数据库从头开始计数char以查找第一个字符。
  • 假如position为负数,则 KingBase 从 末端倒数char。
  • 假如substring_length省略,则 KingBase 将所有字符返回到char. 假如substring_length小于 1,则 KingBase 返回 null。
    char可以是任何数据类型CHAR, VARCHAR, NCHAR, NVARCHAR, CLOB, 或NCLOB. 例外是SUBSTRC,SUBSTR2和SUBSTR4, 不允许char是CLOBor NCLOB。两者position和都substring_length必须是数据类型NUMBER,大概任何可以隐式转换为的数据类型NUMBER,并且必须分析为整数。返回值与
  的数据类型相同char,除了CHAR参数返回一个VARCHAR值,而NCHAR参数NVARCHAR返回一个值。作为参数传递的浮点数SUBSTR会主动转换为整数。
   例子: 以下示例返回“ABCDEFG”的几个指定子字符串:
     SELECT SUBSTRB('ABCDEFG',3,4) "Substring" FROM DUAL;
    Substring
  CDEF
    SELECT SUBSTRB('ABCDEFG',-5,4) "Substring" FROM DUAL;
    Substring
  CDEF
     8.328. SUBSTRING

   用法:
   
  1. substring(string [from int]  [for int])
复制代码
   功能:
     这些SUBSTR函数返回 的一部分char,从字符开始position,substring_length字符长。SUBSTR利用输入字符集界说的字符盘算长度。SUBSTRB利用字节而不是字符。SUBSTRC利用 Unicode 完备字符。SUBSTR2利用 UCS2 代码点。SUBSTR4利用 UCS4 代码点。
      

  • 假如position为 0,则将其视为 1。
  • 假如position为正,则 KingBase 数据库从头开始计数char以查找第一个字符。
  • 假如position为负数,则 KingBase 从 末端倒数char。
  • 假如substring_length省略,则 KingBase 将所有字符返回到char. 假如substring_length小于 1,则 KingBase 返回 null。
      char可以是任何数据类型CHAR, VARCHAR, NCHAR, NVARCHAR, CLOB, 或NCLOB. 例外是SUBSTRC,SUBSTR2和SUBSTR4, 不允许char是CLOBor NCLOB。两者position和都substring_length必须是数据类型NUMBER,大概任何可以隐式转换为的数据类型NUMBER,并且必须分析为整数。返回值与
   的数据类型相同char,除了CHAR参数返回一个VARCHAR值,而NCHAR参数NVARCHAR返回一个值。作为参数传递的浮点数SUBSTR会主动转换为整数。
    例子:
     以下示例返回“ABCDEFG”的几个指定子字符串:
  
  1. SELECT SUBSTRING('ABCDEFG',3,4) "Substring" FROM DUAL;
  2. +-----------+
  3. | Substring |
  4. +===========+
  5. | CDEF      |
  6. +-----------+
  7. SELECT SUBSTRING('ABCDEFG',-5,4) "Substring" FROM DUAL;
  8. +-----------+
  9. | Substring |
  10. +===========+
  11. | CDEF      |
  12. +-----------+
复制代码
   8.329. SUM

   用法:
   
  1. sum(expression)
复制代码
   功能:
     SUM返回非空输入值的和。
   也可以看看:
   

  • 假如输入值为smallint类型大概integer类型时,返回类型为bigint。
  • 假如输入值为bigint类型大概numeric类型时,返回类型为numeric。
  • 假如输入值类型为real、double precision、interval或money时,返回类型与输入类型相同。
    例子:
     以下示例返回非空输入值的和:
      
  1. SELECT x, SUM(y) FROM test1 GROUP BY x HAVING sum(y) > 3;
  2. +---+-----+
  3. | x | SUM |
  4. +===+=====+
  5. | a | 4   |
  6. +---+-----+
  7. | b | 5   |
  8. +---+-----+
复制代码
      8.330. SYS_BACKEND_PID

用法:
  
  1. sys_backend_pid()
复制代码
功能:
   SYS_BACKEND_PID返回附加到当前会话的服务器进程的进程ID。
  例子:
   以下示例返回附加到当前会话的服务器进程的进程ID:
  1. SELECT SYS_BACKEND_PID();
  2. +-----------------+
  3. | SYS_BACKEND_PID |
  4. +=================+
  5. | 178263          |
  6. +-----------------+
复制代码
8.331. SYS_CANCEL_BACKEND

   用法:
   
  1. sys_cancel_backend(pid int)
复制代码
   功能:
     SYS_CANCEL_BACKEND用于取消对具有指定进程ID的后端进程的会话的当前查询。
   也可以看看:
   

  • 假如调用的用户是其后端正在被取消的脚色的成员,大概调用的脚色已被授予SYS_SIGNAL_BACKEND,则也允许操作。
  • 只有超级用户可以取消超级用户的后端。
    例子:
     以下示例取消对具有指定进程ID的后端进程的会话的当前查询:
  
  1. SELECT SYS_CANCEL_BACKEND(458343);
  2. +--------------------+
  3. | SYS_CANCEL_BACKEND |
  4. +====================+
  5. | t                  |
  6. +--------------------+
复制代码
   8.332. SYS_COLUMN_SIZE

   用法:
   
  1. sys_column_size(any)
复制代码
   功能:
     SYS_COLUMN_SIZE返回用于存储任何单个数据值的字节数。
   假如直策应用于表的列值,则将反映所做的任何压缩。
    例子:
     以下示例返回用于存储任何单个数据值的字节数:
  
  1. SELECT SYS_COLUMN_SIZE('abc');
  2. +-----------------+
  3. | SYS_COLUMN_SIZE |
  4. +=================+
  5. | 4               |
  6. +-----------------+
复制代码
   8.333. SYS_CONTEXT

   用法:
        
  1. sys_context(namespace text, parameter text, length int default 256)
复制代码
     输入参数:
   Namespace:已创建的 namespace,不区分大小写,假如不存在,则返回空。 Parameter:namespace 中的属性,不区分大小写,假如不存在,则报错;最大长度 30bytes。 Length: length 为 INT 类型,最大值为 4000,即返回字符串最大长度为 4000 字节;假如指定的 length 值非法,则忽略该值,而利用默认值 256。
   输出:
   函数返回值类型为 varchar(256),假如返回值超过 256 字节,则须要设置 length。
    功能:
     SYS_CONTEXT返回当前时候与上下文定名空间相干联的parameter的值。可以在SQL和PL/SQL语句中利用该函数。SYS_CONTEXT必须在本地执行。
    例子:
   
  1. SELECT SYS_CONTEXT ('USERENV', 'CURRENT_SCHEMA') FROM DUAL;
  2. sys_context
  3. -------------
  4. public
  5. (1 row)
复制代码
   8.334. SYS_DATABASE_SIZE

   用法:
  1. sys_database_size({oid|name})
复制代码
功能:
     SYS_DATABASE_SIZE返回指定名称或OID的数据库利用的总磁盘空间。返回类型为bigint。
   要利用此功能,您必须对指定的数据库有连接权限,大概您是sys_read_all_stats脚色的成员。
   输入值可以是数据库名,也可以是数据库的OID。
    例子:
     以下示例返回用于存储任何单个数据值的字节数:
  
  1. SELECT SYS_DATABASE_SIZE('test');
  2. +-------------------+
  3. | SYS_DATABASE_SIZE |
  4. +===================+
  5. | 13004643          |
  6. +-------------------+
  7. SELECT SYS_DATABASE_SIZE(16173);
  8. +-------------------+
  9. | SYS_DATABASE_SIZE |
  10. +===================+
  11. | 13004643          |
  12. +-------------------+
复制代码
   8.335. SYS_STAT_FILE

   用法:
   
  1. sys_stat_file(filename text[, ``missing_ok`` boolean])
复制代码
   功能:
     返回关于一个文件/目次的统计信息。默认仅限于超级用户利用,但是可以给其他用户授予EXECUTE让他们运行这个函数。
    例子:
   
  1. SELECT * from sys_stat_file('base',true);
  2. SIZE |         ACCESS         |      MODIFICATION      |         CHANGE         | CREATION | ISDIR
  3. ------+------------------------+------------------------+------------------------+----------+-------
  4.   131 | 2022-06-27 14:14:02+08 | 2022-06-17 20:39:48+08 | 2022-06-17 20:39:48+08 |          | t
  5. (1 row)
复制代码
   8.336. SYS_READ_BINARY_FILE

   用法:
   
  1. sys_read_binary_file(filename text [, ``offset`` bigint, ``length`` bigint [, ``missing_ok`` boolean] ])
复制代码
   功能:
     返回一个二进文件的内容。默认仅限于超级用户利用,但是可以给其他用户授予EXECUTE让他们运行这个函数。
    例子:
   
  1. SELECT sys_read_binary_file('11.bin');
  2. SELECT sys_read_binary_file('11.bin',0,1024,true);
复制代码
   8.337. SYS_READ_FILE

   用法:
  1. sys_read_file(filename text [, ``offset`` bigint, ``length`` bigint [, ``missing_ok`` boolean] ])
复制代码
功能:
     返回一个文件的内容。默认仅限于超级用户利用,但是可以给其他用户授予EXECUTE让他们运行这个函数。
    例子:
  1. SELECT sys_read_binary_file('11.txt');
  2. SELECT sys_read_binary_file('11.txt',10,1024,true);
复制代码
8.338. SYS_TERMINATE_BACKEND

   用法:
   
  1. sys_terminate_backend(pid int)
复制代码
   功能:
     中断一个后端。假如调用脚色是被取消后端的拥有者脚色的成员大概调用脚色已经被授予 sys_signal_backend,这也是允许的,不外只有超级用户才气取消超级用户的后端。
    例子:
   
  1. SELECT sys_terminate_backend(134245);
  2. SYS_TERMINATE_BACKEND
  3. -----------------------
  4. t
  5. (1 row)
复制代码
   8.339. SYS_TOTAL_RELATION_SIZE

   用法:
   
  1. sys_total_relation_size (oid bigint)
复制代码
   功能:
     指定表所用的总磁盘空间,包罗所有的索引和TOAST数据
    例子:
  1. SELECT sys_total_relation_size (1259);
  2. SYS_TOTAL_RELATION_SIZE
  3. -------------------------
  4.           442368
  5. (1 row)
复制代码
8.340. SYS_FUNCTION_IS_VISIBLE

   用法:
   
  1. sys_function_is_visible(function_oid)
复制代码
   功能:
     判定函数在搜索路径中是否可见。
    例子:
   
  1. \set SQLTERM /
  2. CREATE OR REPLACE FUNCTION increment(i INTEGER)
  3. RETURNS INTEGER AS
  4. BEGIN
  5.     RETURN i + 1;
  6. END;
  7. /
  8. \set SQLTERM ;
  9. select oid from sys_proc where proname = 'increment';
复制代码
  1. oid
  2. -------
  3. 46531
  4. (1 row)
复制代码
  1. SELECT sys_function_is_visible(46531);
复制代码
  1. sys_function_is_visible
  2. -------------------------
  3. t
  4. (1 row)
复制代码
   8.341. SYS_GET_CONSTRAINTDEF

   用法:
   
  1. sys_get_constraintdef(constraint_oid)
  2. sys_get_constraintdef(constraint_oid, pretty_bool)
复制代码
   功能:
     获得对应束缚的界说。pretty_bool为真则为优质打印方式。
    例子:
   
  1. create table products (
  2.     product_no integer,
  3.     name text,
  4.     price numeric constraint positive_price check (price > 0)
  5.     );
  6. select oid from sys_constraint where conname = 'psitive_price';
复制代码
  1. oid
  2. -------
  3. 247537
  4. (1 row)
复制代码
  1. SELECT sys_get_constraintdef(247537);
复制代码
  1. sys_get_constraintdef
  2. --------------------------------
  3. CHECK ((price > (0)::numeric))
  4. (1 row)
复制代码
  1. SELECT sys_get_constraintdef(247537, false);
复制代码
  1. sys_get_constraintdef
  2. --------------------------------
  3. CHECK ((price > (0)::numeric))
  4. (1 row)
复制代码
   8.342. SYS_GET_EXPR

   用法:
   
  1. sys_get_expr(sys_node_tree, relation_oid)
  2. sys_get_expr(sys_node_tree, relation_oid, pretty_bool)
复制代码
   功能:
     反编译一个表达式的内部形式,假定此中的任何 Var 指向由第二个参数指示的关系。pretty_bool为真则为优质打印方式。
    例子:
   
  1. select oid from sys_attrdef limit 1;
  2. .. code::
  3.    oid
  4.   -------
  5.    16485
  6.   (1 row)
  7.   .. code::
  8. \set SQLTERM /
  9.   declare
  10.       r record;
  11.       a text;
  12.   begin
  13.       select * into r from sys_attrdef where oid = 16485;
  14.       a = sys_get_expr(r.adbin, r.adrelid);
  15.       RAISE NOTICE 'a = %', a;
  16.   end;
  17. .. code::
  18.   NOTICE:  a = nextval('mytest_id_seq'::regclass)
  19. .. code::
  20. \set SQLTERM /
  21.   declare
  22.       r record;
  23.       a text;
  24.   begin
  25.       select * into r from sys_attrdef where oid = 16485;
  26.       a = sys_get_expr(r.adbin, r.adrelid, true);
  27.       RAISE NOTICE 'a = %', a;
  28.   end;
  29. .. code::
  30.   NOTICE:  a = nextval('mytest_id_seq'::regclass)
复制代码
   8.343. SYS_GET_FUNCTION_ARGUMENTS

   用法:
   
  1. sys_get_function_arguments(func_oid)
复制代码
   功能:
     获得一个函数或过程界说的参数列表(带有默认值)。
    例子:
   
  1. \set SQLTERM /
  2. CREATE OR REPLACE FUNCTION increment(i INTEGER)
  3. RETURNS INTEGER AS
  4. BEGIN
  5.     RETURN i + 1;
  6. END;
  7. /
  8. \set SQLTERM ;
  9. select oid from sys_proc where proname = 'increment';
复制代码
  1. oid
  2. -------
  3. 46531
  4. (1 row)
复制代码
  1. SELECT sys_get_function_arguments(46531);
复制代码
  1. sys_get_function_arguments
  2. ----------------------------
  3. i integer
  4. (1 row)
复制代码
   8.344. SYS_GET_FUNCTION_IDENTITY_ARGUMENTS

   用法:
   
  1. sys_get_function_identity_arguments (func_oid)
复制代码
   功能:
     获得标识一个函数或过程的参数列表(不带默认值)。
    例子:
   
  1. \set SQLTERM /
  2. CREATE OR REPLACE FUNCTION increment(i INTEGER)
  3. RETURNS INTEGER AS
  4. BEGIN
  5.     RETURN i + 1;
  6. END;
  7. /
  8. \set SQLTERM ;
  9. select oid from sys_proc where proname = 'increment';
复制代码
  1. oid
  2. -------
  3. 46531
  4. (1 row)
复制代码
  1. SELECT sys_get_function_identity_arguments (46531);
复制代码
  1. sys_get_function_identity_arguments
  2. -------------------------------------
  3. i integer
  4. (1 row)
复制代码
   8.345. SYS_GET_FUNCTION_RESULT

   用法:
   
  1. sys_get_function_result(func_oid)
复制代码
   功能:
     获得函数的RETURNS 子句(对过程返回空)。
    例子:
   
  1. \set SQLTERM /
  2. CREATE OR REPLACE FUNCTION increment(i INTEGER)
  3. RETURNS INTEGER AS
  4. BEGIN
  5.     RETURN i + 1;
  6. END;
  7. /
  8. \set SQLTERM ;
  9. select oid from sys_proc where proname = 'increment';
复制代码
  1. oid
  2. -------
  3. 46531
  4. (1 row)
复制代码
  1. SELECT sys_get_function_result(46531);
复制代码
  1. sys_get_function_result
  2. -------------------------
  3. integer
  4. (1 row)
复制代码
   8.346. SYS_GET_FUNCTIONDEF

   用法:
   
  1. sys_get_functiondef(func_oid)
复制代码
   功能:
     获得一个函数或过程的界说。
    例子:
   
  1. \set SQLTERM /
  2. CREATE OR REPLACE FUNCTION increment(i INTEGER)
  3. RETURNS INTEGER AS
  4. BEGIN
  5.     RETURN i + 1;
  6. END;
  7. /
  8. \set SQLTERM ;
  9. select oid from sys_proc where proname = 'increment';
复制代码
  1. oid
  2. -------
  3. 46531
  4. (1 row)
复制代码
  1. SELECT sys_get_functiondef(46531);
复制代码
  1.                   sys_get_functiondef
  2. --------------------------------------------------------
  3. CREATE OR REPLACE FUNCTION public.increment(i integer)+
  4.   RETURNS integer                                      +
  5. AS                                                    +
  6. BEGIN                                                 +
  7.      RETURN i + 1;                                     +
  8. END                                                   +
  9. (1 row)
复制代码
   8.347. SYS_GET_INDEXDEF

   用法:
   
  1. sys_get_indexdef(index_oid)
  2. sys_get_indexdef(index_oid, column_no, pretty_bool)
复制代码
   功能:
     根据参数不同。
   

  • 获得索引的CREATE INDEX命令。
  • 获得索引的CREATE INDEX命令,大概当 column_no 为非零时,只得到一个索引列的界说。
    例子:
   
  1. create table films(
  2.    id int,
  3.    title text
  4.    );
  5.   CREATE UNIQUE INDEX title_idx ON films (title);
  6.   select oid from sys_class where relname = 'title_idx';
复制代码
  1.   oid
  2. --------
  3. 247564
  4. (1 row)
复制代码
  1. SELECT sys_get_indexdef(247564);
复制代码
  1.                          sys_get_indexdef
  2. -------------------------------------------------------------------
  3. CREATE UNIQUE INDEX title_idx ON public.films USING btree (title)
  4. (1 row)
  5. .. code::
  6. SELECT sys_get_indexdef(247564, 0, true);
复制代码
  1.                          sys_get_indexdef
  2. -------------------------------------------------------------------
  3. CREATE UNIQUE INDEX title_idx ON public.films USING btree (title)
  4. (1 row)
复制代码
   8.348. SYS_GET_KEYWORDS

   用法:
  1. sys_get_keywords()
复制代码
功能:
     获得 SQL 关键字的列表及其分类。
    例子: 以下示例为查询SQL 关键字的列表及其分类。
   
  1. select sys_get_keywords()
  2. ;
复制代码
  1.                        sys_get_keywords
  2. ------------------------------------------------------------------
  3. (abort,U,unreserved)
  4. (absolute,U,unreserved)
  5. (access,U,unreserved)
  6. (account,U,unreserved)
  7. (action,U,unreserved)
  8. (add,U,unreserved)
  9. ... ...
  10. (569 rows)
复制代码
   8.349. SYS_GET_OBJECT_ADDRESS

   用法:
  1. sys_get_object_address(type text, name text[], args text[])
复制代码
功能:
     从一个数据库对象的内部表示得到它的地址。
   sys_get_object_address返回一行,此中包含有足以唯一 标识由类型、对象名和参数数组指定的数据库对象的信息。返回值可以被用在诸如 sys_depend等体系目次中并且可以被传递给 sys_identify_object或sys_describe_object等其他 体系函数。``class_id``是包含该对象的体系目次 OID; ``objid``是对象本身的 OID,而 ``objsubid``是子对象 ID,假如没有则为零。这个函数是 sys_identify_object_as_address的逆函数。
    例子:
     以下示例为查找func_test函数的内部地址。
  
  1. \set SQLTERM /
  2. create function func_test(i int) return int as
  3. begin
  4.     raise notice 'in func';
  5.     return 1;
  6. end;
  7. /
  8. \set SQLTERM ;
  9. select sys_get_object_address('function','{public,func_test}','{int}');
复制代码
  1. sys_get_object_address
  2. -----------------------
  3. (1255,41016,0)
  4. (1 row)
复制代码
   8.350. SYS_GET_RULEDEF

   用法:
   
  1. sys_get_ruledef(rule_oid)
  2. sys_get_ruledef(rule_oid, pretty_bool)
复制代码
   功能:
     重建规则的创建命令。
    例子:
     以下示例为重建"_RETURN"规则。
  
  1. \set SQLTERM ;
  2. create table t1 (i int);
  3. insert into t1 values(10);
  4. create table t2 (i int);
  5. CREATE RULE "_RETURN" AS
  6.     ON SELECT TO t2
  7.     DO INSTEAD
  8.         SELECT * FROM t1;
  9. select sys_get_ruledef((select oid from sys_rewrite where rulename = '_return' and ev_class= (select oid from sys_class where relname='t2')));
  10.                   sys_get_ruledef
  11. ----------------------------------------------------
  12. CREATE RULE _return AS                            +
  13.      ON SELECT TO public.t2 DO INSTEAD  SELECT t1.i+
  14.     FROM t1;
  15. (1 row)
  16. select sys_get_ruledef((select oid from sys_rewrite where rulename = '_return' and ev_class= (select oid from sys_class where relname='t2')), true);
  17.                    sys_get_ruledef
  18. ---------------------------------------------
  19. CREATE RULE _return AS                     +
  20.      ON SELECT TO t2 DO INSTEAD  SELECT t1.i+
  21.     FROM t1;
  22. (1 row)
  23. select sys_get_ruledef((select oid from sys_rewrite where rulename = '_return' and ev_class= (select oid from sys_class where relname='t2')), false);
  24.                   sys_get_ruledef
  25. ----------------------------------------------------
  26. CREATE RULE _return AS                            +
  27.      ON SELECT TO public.t2 DO INSTEAD  SELECT t1.i+
  28.     FROM t1;
  29. (1 row)
复制代码
   8.351. SYS_GET_SERIAL_SEQUENCE

   用法:
   
  1. sys_get_serial_sequence(table_name, column_name)
复制代码
   功能:
     获得一个序列列或标识列利用的序列的名称。
   sys_get_serial_sequence返回与一个列相干联的序列的名称,假如与列相干联的序列则返回 NULL。假如该列是一个标识列,相干联的序列是为该标识列内部创建的序列。 对于利用序列类型之一(serial、smallserial、bigserial)创建的列,它是为那个序列列界说创建的序列。 在后一种情况中,这种关联可以用ALTER SEQUENCE OWNED BY修改大概移除(该函数可能应该已经被sys_get_owned_sequence调用,它当前的名称反映了它通常被serial或bigserial列利用)。 第一个输入参数是一个带可选模式的表名,第二个参数是一个列名。由于第一个参数可能是一个模式和表,它不能按照一个双引号困绕的标识符来对待,意味着它默认情况下是小写的。 而第二个参数只是一个列名,将被当作一个双引号困绕的来处理并且会生存其大小写。函数返回的值会被得当地格式化以便传递给序列函数(参见 序列操作函数 )。 一种典型的用法是为标识列大概序列列读取当前值,例如:
    例子: 一种典型的用法是为标识列大概序列列读取当前值。
   
  1. \set SQLTERM ;
  2. CREATE TABLE serialTest1 (f1 text, f2 serial);
  3. INSERT INTO serialTest1 VALUES ('foo');
  4. INSERT INTO serialTest1 VALUES ('bar');
  5. INSERT INTO serialTest1 VALUES ('force', 100);
  6. SELECT * FROM serialTest1;
  7. SELECT currval(sys_get_serial_sequence('serialTest1', 'f2'));
  8. currval
  9. ---------
  10.        2
  11. (1 row)
  12. SELECT sys_get_serial_sequence('serialTest1', 'f2');
  13.   sys_get_serial_sequence
  14. ---------------------------
  15. public.serialtest1_f2_seq
  16. (1 row)
复制代码
   8.352. SYS_GET_STATISTICSOBJDEF

   用法:
   
  1. sys_get_statisticsobjdef(statobj_oid)
复制代码
   功能:
     重建一个扩展统计对象的创建命令(CREATE STATISTICS命令)。
    例子:
     以下示例为重建扩展统计对象命令。
  
  1. \set SQLTERM ;
  2. CREATE TABLE ab1 (a INTEGER, b INTEGER, c INTEGER);
  3. CREATE STATISTICS IF NOT EXISTS ab1_a_b_stats ON a, b FROM ab1;
  4. CREATE SCHEMA regress_schema_2;
  5. CREATE STATISTICS regress_schema_2.ab1_a_b_stats ON a, b FROM ab1;
  6. SELECT sys_get_statisticsobjdef(oid) FROM sys_statistic_ext WHERE stxname = 'ab1_a_b_stats';
  7.                       sys_get_statisticsobjdef
  8. -------------------------------------------------------------------
  9. CREATE STATISTICS public.ab1_a_b_stats ON a, b FROM ab1
  10. CREATE STATISTICS regress_schema_2.ab1_a_b_stats ON a, b FROM ab1
  11. (2 rows)
复制代码
   8.353. SYS_GET_TRIGGERDEF

   用法:
   
  1. sys_get_triggerdef(trigger_oid)
  2. sys_get_triggerdef(trigger_oid, pretty_bool)
复制代码
   功能:
     重建一个触发器 的CREATE [ CONSTRAINT ] TRIGGER命令。
   pretty_bool为真时,会以简洁形式重建触发器,如触发器依靠表在当前模式下则不会重建触发器依靠表的模式名。
    例子: 以下示例为重建触发器命令。
   
  1. \set SQLTERM ;
  2. CREATE TABLE test_table(a INT, b INT, c INT, d INT);
  3. CREATE TABLE test_result(name VARCHAR(10), c INT);
  4. \set SQLTERM /
  5. CREATE OR REPLACE TRIGGER tri_test_1 AFTER UPDATE OF c ON test_table
  6. FOR EACH ROW AS
  7. BEGIN
  8.     INSERT INTO test_result VALUES('t1:new.c', :new.c);
  9. END
  10. /
  11. \set SQLTERM ;
  12. SELECT sys_get_triggerdef(oid) from sys_trigger where tgname = 'tri_test_1';
  13.                                    sys_get_triggerdef
  14. -------------------------------------------------------------------------------------------
  15. CREATE OR REPLACE TRIGGER tri_test_1 AFTER UPDATE OF c ON public.test_table FOR EACH ROW +
  16. BEGIN                                                                                    +
  17.      INSERT INTO test_result VALUES('t1:new.c', :new.c);                                  +
  18. END                                                                                      +
  19. (1 row)
  20. SELECT sys_get_triggerdef(oid, true) from sys_trigger where tgname = 'tri_test_1';
  21.                                  sys_get_triggerdef
  22. ------------------------------------------------------------------------------------
  23. CREATE OR REPLACE TRIGGER tri_test_1 AFTER UPDATE OF c ON test_table FOR EACH ROW +
  24. BEGIN                                                                             +
  25.      INSERT INTO test_result VALUES('t1:new.c', :new.c);                           +
  26. END                                                                               +
  27. (1 row)
  28. SELECT sys_get_triggerdef(oid, false) from sys_trigger where tgname = 'tri_test_1';
  29.                                     sys_get_triggerdef
  30. -------------------------------------------------------------------------------------------
  31. CREATE OR REPLACE TRIGGER tri_test_1 AFTER UPDATE OF c ON public.test_table FOR EACH ROW +
  32. BEGIN                                                                                    +
  33.      INSERT INTO test_result VALUES('t1:new.c', :new.c);                                  +
  34. END                                                                                      +
  35. (1 row)
复制代码
   8.354. SYS_GET_USERBYID

   用法:
   
  1. sys_get_userbyid(role_oid)
复制代码
   功能:
     获得给定 OID 指定的脚色名。
    例子: 以下示例为重建触发器命令。
   
  1. \set SQLTERM ;
  2. select sys_get_userbyid(9);
复制代码
  1. sys_get_userbyid
  2. ------------------
  3. sao
  4. (1 row)
复制代码
   8.355. SYS_GET_VIEWDEF

   用法:
  1. sys_get_viewdef(view_name)
  2. sys_get_viewdef(view_name, pretty_bool)
  3. sys_get_viewdef(view_oid)
  4. sys_get_viewdef(view_oid, pretty_bool)
  5. sys_get_viewdef(view_oid, wrap_column_int)
复制代码
功能:
     sys_get_viewdef重构界说一个视图的SELECT查询。
   前两种用法为通过视图名或物化视图名重建视图命令,后三种用法为通过视图oid或物化视图oid重建视图命令。
   这些函数的大部分都有两种变体,一种可以可选地“优质打印”结果。 优质打印的格式可读性更强,但是默认格式更可能被未来版本的KingbaseES以相同的方式解释。 在转出目的中制止利用优质打印输出。为pretty_bool参数传递 false 将得到和不带该参数的变体相同的结果。
   wrap_column_int为指定长度的列宽,并隐含了优质打印。
    例子: 以下示例为重建触发器命令。
   
  1. \set SQLTERM ;
  2. create table t1(i int, j text);
  3. create view v1 as select * from t1;
  4. select sys_get_viewdef('v1'::regclass);
  5. sys_get_viewdef
  6. ----------------
  7.   SELECT t1.i, +
  8.      t1.j      +
  9.     FROM t1;
  10. (1 row)
复制代码
   8.356. SYS_GUID

   用法:
   
  1. sys_guid()
复制代码
   功能:
     SYS_GUID生成并返回一个RAW由 16 个字节组成的全局唯一标识符(值)。在大多数平台上,生成的标识符由主机标识符、调用函数的进程或线程的进程或线程标识符以及该进程或线程的非重复值(字节序列)组成。
    例子:
     以下示例将一列添加到示例表中hr.locations,将唯一标识符插入每一行,并返回RAW全局唯一标识符的 16 字节值的 32 个字符的十六进制表示:
  
  1. ALTER TABLE locations ADD (uid_col RAW(16));
  2. UPDATE locations SET uid_col = SYS_GUID();
  3. SELECT location_id, uid_col FROM locations ORDER BY location_id, uid_col;
  4. +-------------+----------------------------------+
  5. | LOCATION_ID | UID_COL                          |
  6. +=============+==================================+
  7. | 1000        | 09F686761827CF8AE040578CB20B7491 |
  8. +-------------+----------------------------------+
  9. | 1100        | 09F686761828CF8AE040578CB20B7491 |
  10. +-------------+----------------------------------+
  11. | 1200        | 09F686761829CF8AE040578CB20B7491 |
  12. +-------------+----------------------------------+
  13. | 1300        | 09F68676182ACF8AE040578CB20B7491 |
  14. +-------------+----------------------------------+
  15. | 1400        | 09F68676182BCF8AE040578CB20B7491 |
  16. +-------------+----------------------------------+
  17. | 1500        | 09F68676182CCF8AE040578CB20B7491 |
  18. +-------------+----------------------------------+
  19. | . . .       |                                  |
  20. +-------------+----------------------------------+
复制代码
   8.357. SYS_HAS_ROLE

   用法:
   
  1. sys_has_role(user, role, privilege)
  2. sys_has_role(role, privilege)
复制代码
   功能:
     查抄 user 用户(未指定时利用当前用户)是否能以特定的方式访问一个脚色。其参数的可能性类同于has_table_privilege。除了public不允许作为一个用户名。希望的访问权限类型必须是下列值的某种组合:MEMBER或USAGE。MEMBER表示该脚色中的直接或间接成员关系(即利用SET ROLE的权力),而USAGE表示不做SET ROLE的情况下该脚色的权限是否立刻可用。
    例子:
   
  1. select sys_has_role('system', 'usage');
  2. +--------------+
  3. | sys_has_role |
  4. +==============+
  5. | t            |
  6. +--------------+
复制代码
   8.358. SYS_IDENTIFY_OBJECT

   用法:
   
  1. sys_identify_object(catalog_id oid, object_id oid, object_sub_id integer)
复制代码
   功能:
     返回一行数据,包含由参数量录OID、对象OID和一个(可能为零的)子对象ID所唯一标识的数据库对象的信息。该信息是供机器读取的,并且不会被翻译。type标识数据库对象的类型;schema是该对象所属的模式名,假如对象类型不属于模式则为NULL;,假如须要的话,可以加上引号假如该名称(假如相干的话,还可以加上模式名)足以唯一标识该对象,则name就是对象的名称,须要时会被加上引号,否则为NULL;identity是完备的兑现标识,它会表现为与对象类型相干的准确格式,并且如有须要,该格式中的每个部分都会被模式限定。
    例子:
   
  1. select * from sys_identify_object(1259, 14886, 0);
  2. +------+-------------+-----------+-----------------------+
  3. | type |   schema    |   name    |       identity        |
  4. +======+=============+===========+=======================+
  5. | view | sys_catalog | sys_class | sys_catalog.sys_class |
  6. +------+-------------+-----------+-----------------------+
复制代码
   8.359. SYS_IDENTIFY_OBJECT_AS_ADDRESS

   用法:
   
  1. sys_identify_object_as_address(catalog_id oid, object_id oid, object_sub_id integer)
复制代码
   功能:
     返回一行数据,包含由参数量录OID、对象OID和一个(可能为零的)子对象ID所唯一标识的数据库对象的信息。返回的信息独立于当前服务器,也就是说,它可以被用来在另一个服务器中标识一个具有相同定名的对象。type标识数据库对象的类型;object_names和object_args是文本数组,它们一起构成了对对象的引用。这三个值可以被传递给sys_get_object_address以获得该对象的内部地址。这个函数是sys_get_object_address的逆函数。
    例子:
   
  1. select * from sys_identify_object_as_address(1259, 14886, 0);
  2. +------+-------------------------+-------------+
  3. | type |      object_names       | object_args |
  4. +======+=========================+=============+
  5. | view | {sys_catalog,sys_class} | {}          |
  6. +------+-------------------------+-------------+
复制代码
   8.360. SYS_INDEXES_SIZE

   用法:
   
  1. sys_indexes_size(regclass)
复制代码
  功能:
       继续一个表的 OID 或名称,并返回附加到该表的所有索引所利用的全部磁盘空间。
       例子:
         以下示例返回表的所有索引所利用的全部磁盘空间:
     
  1. SELECT sys_indexes_size('test');
  2. +-----------------+
  3. | sys_indexes_size |
  4. +=================+
  5. | 16384           |
  6. +-----------------+
  7. SELECT sys_indexes_size('24878');
  8. +-----------------+
  9. | sys_indexes_size |
  10. +=================+
  11. | 16384           |
  12. +-----------------+
复制代码
   8.361. SYS_KINGBASE_START_TIME

   用法:
   
  1. sys_kingbase_start_time()
复制代码
   功能:
     返回服务器启动时的timestamp with time zone。
    例子:
   
  1. select sys_kingbase_start_time()
  2. ;+-------------------------------+|    sys_kingbase_start_time    |+===============================+| 2022-06-28 14:03:47.041437+08 |+-------------------------------+
复制代码
   8.362. SYS_LS_DIR

   用法:
   
  1. sys_ls_dir(dirname text [, missing_ok boolean, include_dot_dirs boolean])
复制代码
   功能:
     体系函数,列出目次中的内容。默认仅限于超级用户利用,但是可以给其他用户授予Execute让他们运行这个函数。
    例子:
   
  1. SELECT SYS_LS_DIR('/', TRUE, TRUE);
  2. +---------------+
  3. | sys_ls_dir    |
  4. |---------------|
  5. | .             |
  6. | ..            |
  7. | boot          |
  8. | dev           |
  9. | proc          |
  10. | run           |
  11. | sys           |
  12. | etc           |
  13. | root          |
  14. | var           |
  15. | tmp           |
  16. | usr           |
  17. | bin           |
  18. | sbin          |
  19. | lib           |
  20. | lib64         |
  21. | home          |
  22. | media         |
  23. | mnt           |
  24. | opt           |
  25. | srv           |
  26. | .readahead    |
  27. | .bash_history |
  28. | .autorelabel  |
  29. +---------------+
复制代码
   8.363. SYS_LS_LOGDIR

   用法:
   
  1. sys_ls_logdir()
复制代码
   功能:
     体系函数,列出日志目次中文件的名称、尺寸以及最后修改时间。访问被授予给sys_monitor 脚色的成员,并且可以被授予给其他非超级用户脚色。
    例子:
   
  1. SELECT SYS_LS_LOGDIR();
  2. +---------------------------------------------------------------+
  3. | sys_ls_logdir                                                 |
  4. |---------------------------------------------------------------|
  5. | (kingbase-2022-06-28_140347.log,562,"2022-06-28 16:15:28+08") |
  6. +---------------------------------------------------------------+
复制代码
   8.364. SYS_LS_TMPDIR

   用法:
   
  1. sys_ls_tmpdir()
复制代码
   功能:
     体系函数,为tablespace列出临时目次中文件的名称、大小和最后一次修改时间。 假如没有提 供tablespace,则在临时目次中的sys_default表空间被利用。sys_monitor脚色的成员可以访问, 其他非超级用户脚色也可以访问。
    例子:
   
  1. SELECT SYS_LS_TMPDIR();
  2. +-----------------+
  3. | sys_ls_tmpdir   |
  4. |-----------------|
  5. +-----------------+
复制代码
   8.365. SYS_LS_WALDIR

   用法:
   
  1. sys_ls_waldir()
复制代码
   功能:
     体系函数,列出WAL目次中文件的名称、尺寸以及最后修改时间。访问被授予给sys_monitor脚色 的成员,并且可以被授予给其他非超级用户脚色。。
    例子:
   
  1. SELECT SYS_LS_WALDIR();
  2. +--------------------------------------------------------------+
  3. | sys_ls_waldir                                                |
  4. |--------------------------------------------------------------|
  5. | (000000010000000000000001,16777216,"2022-06-28 16:19:57+08") |
  6. +--------------------------------------------------------------+
复制代码
   8.366. SYS_RELATION_FILENODE

   用法:
   
  1. sys_relation_filenode(relation regclass)
复制代码
   功能:
     继续一个表、索引、序列或 TOAST 表的 OID 或名称,返回当前分配给它的“filenode”号。文件结点是关系的文件名的根本组件。对于大多数表结果和 sys_class.relfilenode 相同,但是对于某些体系目次 relfilenode 为零,并且必须利用此函数获取正确的值。假如传递一个没有存储的关系(如视图),此函数将返回 NULL。
    例子:
         以下示例返回表test的“filenode”号:
     
  1. SELECT sys_relation_filenode(oid) FROM sys_class WHERE relname='test';
  2. +-----------------------+
  3. | sys_relation_filenode |
  4. +=======================+
  5. | 24878                 |
  6. +-----------------------+
复制代码
   8.367. SYS_RELATION_FILEPATH

   用法:
   
  1. sys_relation_filepath(relation regclass)
复制代码
   功能:
     返回关系的整个文件路径名(相对于数据库集簇的数据目次 KINGBASE_DATA)。
    例子:
         以下示例返回表test的文件路径名:
     
  1. SELECT sys_relation_filepath(oid) FROM sys_class WHERE relname='test';
  2. +-----------------------+
  3. | sys_relation_filepath |
  4. +=======================+
  5. | base/16078/24878      |
  6. +-----------------------+
复制代码
   8.368. SYS_RELATION_SIZE

   用法:
   
  1. sys_relation_size(relation regclass, fork text)
  2. sys_relation_size(relation regclass)
复制代码
   功能:
     继续一个表、索引或 TOAST 表的 OID 大概名称,并且返回那个关系的一个分叉所占的磁盘空间的字节尺寸。假如只得到一个参数,它会返回该关系的主数据分叉的尺寸。提供第二个参数 可以指定要查抄哪个分叉('main'、'fsm'、'vm'或'init')利用的磁盘空间。
    例子:
     以下示例返回分叉'main'所占的磁盘空间的字节尺寸:
  
  1. SELECT sys_relation_size('test','main');
  2. +-------------------+
  3. | sys_relation_size |
  4. +===================+
  5. | 16384             |
  6. +-------------------+
  7. SELECT sys_relation_size('test');
  8. +-------------------+
  9. | sys_relation_size |
  10. +===================+
  11. | 16384             |
  12. +-------------------+
复制代码
   8.369. SYS_RELOAD_CONF

   用法:
   
  1. sys_reload_conf()
复制代码
   功能:
     SYS_RELOAD_CONF给服务器发送一个SIGHUP信号,导致所有服务器进程重载设置文件,无参数。
    例子:
         以下示例会使服务进程重新加载设置文件:
     
  1. SELECT sys_reload_conf()
  2. ; sys_reload_conf---------------- t(1 row)
复制代码
   8.370. SYS_SIZE_BYTES

   用法:
  1. sys_size_bytes(text)
复制代码
功能:
     可以被用来从人类可读格式的字符串得到此中所表示的字节数。其输入可能带有的单元包罗字节、kB、MB、GB 大概 TB,并且对输入举行分析时是区分大小写的。假如没有指定单元,会假定单元为字节。
    例子:
         以下示例返回表示的字节数:
     
  1. SELECT size, sys_size_bytes(size) FROM (VALUES ('1'), ('123bytes'), ('1kB'), ('1MB'), (' 1 GB'), ('1.5 GB '),('1TB'), ('3000 TB'), ('1e6 MB')) x(size);
  2. +----------+------------------+
  3. | size     | sys_size_bytes   |
  4. +==========+==================+
  5. | 1        | 1                |
  6. | 123bytes | 123              |
  7. | 1kB      | 1024             |
  8. | 1MB      | 1048576          |
  9. | 1 GB     | 1073741824       |
  10. | 1.5 GB   | 1610612736       |
  11. | 1TB      | 1099511627776    |
  12. | 3000 TB  | 3298534883328000 |
  13. | 1e6 MB   | 1048576000000    |
  14. +----------+------------------+
复制代码
   8.371. SYS_SIZE_PRETTY

   用法:
   
  1. sys_size_pretty(bigint)
  2. sys_size_pretty(numeric)
复制代码
   功能:
     可以用于把别的函数之一的结果格式化成一种人类易读的格式,可以根据情况利用字节、kB、MB、GB 大概 TB。
    例子:
     以下示例返回人类易读的格式:
  
  1. SELECT sys_size_pretty(sys_relation_size('test'));
  2. +-----------------+
  3. | sys_size_pretty |
  4. +=================+
  5. | 16 kB           |
  6. +-----------------+
  7. SELECT sys_size_pretty(10::bigint);
  8. +-----------------+
  9. | sys_size_pretty |
  10. +=================+
  11. | 10 bytes        |
  12. +-----------------+
复制代码
   8.372. SYS_SLEEP

   用法:
  1. sys_sleep(seconds)
复制代码
功能:
     SYS_SLEEP让服务进程延时执行,seconds是一个double precision类型的值。
    例子:
         以下示例会使服务进程延时3秒执行:
     
  1. SELECT sys_sleep(3);
  2. sys_sleep
  3. -----------
  4. (1 row)
复制代码
   8.373. SYS_SLEEP_FOR

   用法:
   
  1. sys_sleep_for(interval)
复制代码
   功能:
     SYS_SLEEP_FOR让服务进程延时执行,参数是一个interval,通常用于较长时间的休眠。
    例子:
         以下示例会使服务进程延时5分钟执行:
     
  1. SELECT sys_sleep_for('5 minutes');
  2. sys_sleep_for
  3. ---------------
  4. (1 row)
复制代码
   8.374. SYS_SLEEP_UNTIL

   用法:
   
  1. sys_sleep_until(timestamp with time zone)
复制代码
   功能:
     SYS_SLEEP_UNTIL使程序休眠到一个指定的时间叫醒,参数是timestamp with time zone,通常用于较长时间的休眠。
    例子:
         以下示例会使服务进程直到明天三点后被叫醒:
     
  1. SELECT sys_sleep_until('tomorrow 03:00');
  2. sys_sleep_until
  3. -----------------
  4. (1 row)
复制代码
   8.375. SYS_TABLE_IS_VISIBLE

   用法:
  1. sys_table_is_visible(table_oid)
  2. **功能:**
  3. 表在搜索路径中是否可见,也可被用于视图、物化视图、索引、序列和外部表。
复制代码
例子:
     以下示例返回表在搜索路径中是否可见:
   
  1. SELECT sys_table_is_visible(24878);
  2. +----------------------+
  3. | sys_table_is_visible |
  4. +======================+
  5. | t                    |
  6. +----------------------+
复制代码
8.376. SYS_TABLE_SIZE

   用法:
   
  1. sys_table_size(regclass)
复制代码
   功能:
     继续一个表的 OID 或名称,并返回该表所需的磁盘空间,但是排除索引(TOAST 空间、空闲空间映射和可见性映射包含在内)。
    例子:
         以下示例返回该表所需的磁盘空间:
     
  1. SELECT sys_table_size('test');
  2. +----------------+
  3. | sys_table_size |
  4. +================+
  5. | 5016616960     |
  6. +----------------+
  7. SELECT sys_table_size(24878);
  8. +----------------+
  9. | sys_table_size |
  10. +================+
  11. | 5016616960     |
  12. +----------------+
复制代码
   8.377. SYS_TABLESPACE_DATABASES

   用法:
   
  1. sys_tablespace_databases(tablespace_oid)
复制代码
   功能:
     体系函数,获得在该表空间中所有对象的数据库OID 的聚集。
    例子:
   
  1. SELECT SYS_TABLESPACE_DATABASES(1663);
  2. +----------------------------+
  3. | sys_tablespace_databases   |
  4. |----------------------------|
  5. | 1                          |
  6. | 16051                      |
  7. | 16052                      |
  8. | 16053                      |
  9. +----------------------------+
复制代码
   8.378. SYS_TABLESPACE_LOCATION

   用法:
   
  1. sys_tablespace_location(tablespace_oid)
复制代码
   功能:
     体系函数,获得在该表空间所在的文件体系的路径。
    例子:
   
  1. SELECT SYS_TABLESPACE_LOCATION(1663);
复制代码
   8.379. SYS_TABLESPACE_SIZE

   用法:
   
  1. sys_tablespace_size(tablespace_oid)
复制代码
   功能:
     体系函数,获得指定OID的表空间利用的磁盘空间。
    例子:
   
  1. SELECT SYS_TABLESPACE_SIZE(1663);
  2. +----------------------+
  3. | sys_tablespace_size   |
  4. |----------------------|
  5. | 672388               |
  6. +----------------------+
复制代码
   8.380. SYSDATE

   用法:
         SYSDATE()
      输入参数:
   输出:
   返回当时服务器时间。
    功能:
     返回当时服务器时间。
    例子:
     

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

梦见你的名字

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表