当前位置:网站首页>金仓数据库 KingbaseES SQL 语言参考手册 (8. 函数(五))
金仓数据库 KingbaseES SQL 语言参考手册 (8. 函数(五))
2022-07-23 03:35:00 【沉舟侧畔千帆过_】
8.140. HAS_ANY_COLUMN_PRIVILEGE
用法:
has_any_column_privilege(user, table, privilege) has_any_column_privilege(table, privilege)功能:
检查
user用户(未指定时使用当前用户)是否能以特定方式访问一个表的任意列。希望的访问权限类型必须是下列值的某种组合:SELECT、INSERT、UPDATE或REFERENCES。注意在表级别上具有这些权限中的任意一种将会隐式地把它授予给表上的每一列。例子:
CREATE TABLE tbl(); SELECT has_any_column_privilege('tbl', 'INSERT, UPDATE, REFERENCES');
8.141. HAS_COLUMN_PRIVILEGE
用法:
has_column_privilege(user, table, column, privilege) has_column_privilege(table,column, privilege)功能:
检查
user用户(未指定时使用当前用户)是否能以特定方式访问一个表的column指定列。has_column_privilege检查一个用户是否能以特定方式访问一个列。它的参数可能性与has_table_privilege类似,并且列还可以使用名字或者属性号来指定。希望的访问权限类型必须是下列值的某种组合:SELECT、INSERT、UPDATE或REFERENCES。注意在表级别上具有这些权限中的任意一种将会隐式地把它授予给表上的每一列。例子:
SELECT has_column_privilege(9999,'nosuchcol','select'); SELECT has_column_privilege('mytable','f2','select');
8.142. HAS_DATABASE_PRIVILEGE
用法:
has_database_privilege(user, database, privilege) has_database_privilege(database, privilege)功能:
检查
user用户(未指定时使用当前用户)是否能以privilege指定方式访问database数据库。 希望的访问权限类型必须是以下值的某种组合:CREATE、CONNECT、TEMPORARY或TEMP(等价于TEMPORARY)。例子:
SELECT has_database_privilege(current_database(), 'CONNECT');
8.143. HAS_FOREIGN_DATA_WRAPPER_PRIVILEGE
用法:
has_foreign_data_wrapper_privilege(user, fdw, privilege) has_foreign_data_wrapper_privilege(fdw, privilege)功能:
检查``user`` 用户(未指定时使用当前用户)是否能以特定方式访问一个外部数据包装器。它的参数可能性类似于
has_table_privilege。希望的访问权限类型必须是USAGE。例子:
SELECT has_foreign_data_wrapper_privilege('foo', 'USAGE');
8.144. HAS_FUNCTION_PRIVILEGE
用法:
has_function_privilege(user, function, privilege) has_function_privilege(function, privilege)功能:
检查
user用户(未指定时使用当前用户)是否能以特定方式访问一个函数。其参数可能性类似has_table_privilege。在用一个文本串而不是 OID 指定一个函数时,允许的输入和regprocedure数据类型一样(参阅 对象标识符类型 )。希望的访问权限类型必须是EXECUTE。例子:
SELECT has_function_privilege('joeuser', 'myfunc(int, text)', 'execute');
8.145. HAS_LANGUAGE_PRIVILEGE
用法:
has_language_privilege(user, language, privilege) has_language_privilege(language, privilege)功能:
检查
user用户(未指定时使用当前用户)是否可以以某种特定的方式访问一个过程语言。希望的访问权限类型必须是USAGE。例子:
SELECT has_database_privilege(current_database(), 'CONNECT');
8.146. HAS_SCHEMA_PRIVILEGE
用法:
has_schema_privilege(user, schema, privilege) has_schema_privilege(schema, privilege)功能:
检查
user用户(未指定时使用当前用户)是否能以privilege指定方式访问schema。希望的访问权限类型必须是CREATE或USAGE。例子:
SELECT has_schema_privilege('public', 'USAGE');
8.147. HAS_SEQUENCE_PRIVILEGE
用法:
has_sequence_privilege(user, sequence, privilege) has_sequence_privilege(sequence, privilege)功能:
检查
user用户(未指定时使用当前用户)是否能以某种特定方式访问一个序列。所希望测试的访问权限类型必须是下列之一:USAGE、SELECT或UPDATE。例子:
CREATE SEQUENCE x_seq; SELECT has_sequence_privilege('x_seq', 'SELECT');
8.148. HAS_SERVER_PRIVILEGE
用法:
has_server_privilege(user, server, privilege) has_server_privilege(server, privilege)功能:
检查
user用户(未指定时使用当前用户)是否可以以某种特定的方式访问一个外部服务器。 希望的访问权限类型必须是CREATE或USAGE。例子:
SELECT has_server_privilege('regress_test_role',(SELECT oid FROM pg_foreign_server WHERE srvname='s8'), 'USAGE');
8.149. HAS_TABLE_PRIVILEGE
用法:
has_table_privilege(user, table, privilege) has_table_privilege(table,privilege)功能:
检查
user用户(未指定时使用当前用户)是否可以用某种特定的方式访问一个表。 该用户可以通过名字或者 OID (sys_authid.oid) 来指定,也可以用public表示 PUBLIC 伪角色。如果省略该参数,则使用current_user。 该表可以通过名字或者 OID 指定(因此,实际上有六种has_table_privilege的变体,我们可以通过它们的参数数目和类型来区分它们) 。如果用名字指定,那么在必要时该名字可以是模式限定的。 所希望的权限类型是用一个文本串来指定的,它必须是下面的几个值之一:SELECT、INSERT、UPDATE、DELETE、TRUNCATE、REFERENCES或TRIGGER。WITH GRANT OPTION可以被选择增加到一个权限类型来测试是否该权限是使用转授选项得到。另外,可以使用逗号分隔来列出多个权限类型,在这种情况下只要具有其中之一的权限则结果为真(权限字符串的大小写并不重要,可以在权限名称之间出现额外的空白,但是在权限名内部不能有空白)。例子:
SELECT has_table_privilege('myschema.mytable', 'select'); SELECT has_table_privilege('joe', 'mytable', 'INSERT, SELECT WITH GRANT OPTION');
8.150. HAS_TABLESPACE_PRIVILEGE
用法:
has_tablespace_privilege(user, tablespace, privilege) has_tablespace_privilege(tablespace, privilege)功能:
检查
user用户(未指定时使用当前用户)是否可以以某种特定的方式访问一个表空间。其参数可能性类似``has_table_privilege``。希望的访问权限类型必须是CREATE。例子:
CREATE TABLESPACE mytsp LOCATION '/path/to/mytsp'; SELECT has_tablespace_privilege('mytsp', 'CREATE');
8.151. HAS_TYPE_PRIVILEGE
用法:
has_type_privilege(user, type, privilege) has_type_privilege(type, privilege)功能:
检查
user用户(未指定时使用当前用户)是否能以特定的方式访问一种类型。其参数的可能性类同于has_table_privilege。在用字符串而不是 OID 指定类型时,允许的输入和regtype数据类型相同(见 对象标识符类型 )。期望的访问特权类型必须等于USAGE。例子:
SELECT has_type_privilege('int8', 'USAGE');
8.152. HEIGHT
用法:
height(box)功能:
几何函数,返回方框的垂直尺寸
例子:
SELECT height(box '((0,0),(1,1))');
8.153. HOST
用法:
height(inet)功能:
inet函数,抽取IP地址为文本。
例子:
SELECT host('192.168.1.5/24');
8.154. HOSTMASK
用法:
hostmask(inet)功能:
inet函数,为网络地址构造主机掩码。
例子:
SELECT hostmask('192.168.23.20/30');
8.155. IF
用法:
if(expr1 INT兼容类型, expr2 任意类型, expr3 任意类型)功能:
如果expr1 不为NULL并且expr1不等于0,返回expr2作为结果,否则返回expr3。
参数说明:
expr1是INTEGER类型表达式或者是可以转换成INTEGER的类型。
expr2数据类型可以是系统的数据类型中的某一个(如:TEXT,INTEGER,FLOAT等)。
expr3数据类型可以是系统的数据类型中的某一个(如:TEXT,INTEGER,FLOAT等)。
返回值说明:
返回值的数据类型:返回类型取决于expr2,expr3的类型。
例子:
SELECT IF(100, 'T', 'F') AS RESULT1, IF(1 - 1, 'T', 'F') AS RESULT2, IF('100', 'T', 'F') AS RESULT3, IF(NULL, 'T', 'F') AS RESULT4;
8.156. IFNULL
用法:
ifnull(expr1, expr2)功能:
当``expr1``不是NULL,
IFNULL返回``expr1``。否则它返回``expr2``例子:
SELECT ifnull(NULL,'exp2'); SELECT ifnull('exp1','exp2');
8.157. INET_CLIENT_ADDR
用法:
inet_client_addr()功能:
inet_client_addr返回当前客户端的 IP地址。如果连接是通过 Unix域套接字进行的,返回 NULL。例子:
SELECT inet_client_addr();
8.158. INET_CLIENT_PORT
用法:
inet_client_port()功能:
inet_client_port返回当前客户端的端口号。如果连接是通过 Unix域套接字进行的,返回 NULL。例子:
SELECT inet_client_port();
8.159. INET_MERGE
用法:
inet_merge(inet,inet)功能:
inet_merge返回包括给定网络的最小网络。例子:
SELECT inet_merge('192.168.1.5/24', '192.168.2.5/24');
8.160. INET_SAME_FAMILY
用法:
inet_same_family(inet, inet)功能:
判断连个地址是否同一个IP协议族。
例子:
SELECT inet_same_family(('192.168.1.5/24', '::1'));
8.161. INET_SERVER_ADDR
用法:
inet_server_addr()功能:
inet_server_addr返回接受当前连接的服务器的 IP。如果连接是通过 Unix域套接字进行的,返回 NULL。例子:
SELECT inet_server_addr();
8.162. INET_SERVER_PORT
用法:
inet_server_port()功能:
inet_server_port返回接受当前连接的服务器的端口号。如果连接是通过 Unix域套接字进行的,返回 NULL。例子:
SELECT inet_server_port();
8.163. INITCAP
用法:
initcap(string)功能:
INITCAP返回char,每个单词的第一个字母大写,所有其他字母小写。单词由空格或非字母数字字符分隔。
char可以是任何数据类型CHAR、VARCHAR、NCHAR或NVARCHAR。返回值与 的数据类型相同char。数据库根据为基础字符集定义的二进制映射设置初始字符的大小写。
例子:
以下示例将字符串中的每个单词大写:
SELECT initcap('hi THOMAS');
8.164. INSERTCHILDXML
用法:
insertchildxml(xml_instance xml, xpath text, child_expr text , value_expr xml) insertchildxml(xml_instance xml, xpath text , child_expr text ,value_expr xml, namespace _text)功能:
函数
insertchildxml将``value_expr``提供的值作为``xpath``指定节点的子节点插入到``xml_instance``中。成功则返回插入后的``xml_instance``数据,失败则返回ERROR。此函数使用前需要创建kdb_utils_function扩展。
例子:
SELECT insertchildxml('<a>one <b></b> three <b></b></a>', '//b', 'name', '<name>newnode</name>'); SELECT insertchildxml('<a xmlns="http://example.com"><b>test</b></a>', '//mydefns:b/text()', 'name', '<name>newnode</name>', ARRAY[ARRAY['mydefns', 'http://example.com']]);
8.165. INSERTCHILDXMLAFTER
用法:
insertchildxmlafter(xml_instance xml, xpath text, child_expr text , value_expr xml) insertchildxmlafter(xml_instance xml, xpath text , child_expr text ,value_expr xml,namespace _text)功能:
函数
insertchildxmlafter将``value_expr``提供的一个或多个集合元素作为``xpath``指定的目标父元素的子元素插入到``child_expr``指定的现有集合元素之后。成功则返回插入后的``xml_instance``数据,失败则返回ERROR。此函数使用前需要创建kdb_utils_function扩展。
例子:
在指定节点的所有“b”子节点之后插入:
SELECT insertchildxmlafter('<a>one<b>two</b><b>four</b></a>', '/a', 'b', '<c>three</c>');在指定节点的第一个“b”子节点之后插入
SELECT insertchildxmlafter('<a>one<b>two</b><b>four</b></a>', '/a', 'b[1]', '<c>three</c>');在指定节点的第二个“b”子节点之后插入
SELECT insertchildxmlafter('<a>one<b>two</b><b>four</b></a>', '/a', 'b[2]', '<c>three</c>');
8.166. INSERTCHILDXMLBEFORE
用法:
insertchildxmlbefore(xml_instance xml, xpath text, child_expr text , value_expr xml) insertchildxmlbefore(xml_instance xml, xpath text , child_expr text , value_expr xml,namespace _text)功能:
函数
insertchildxmlbefore将``value_expr``提供的一个或多个集合元素作为``xpath``指定的目标父元素的子元素插入到``child_expr``指定的现有集合元素之前。成功则返回插入后的``xml_instance``数据,失败则返回ERROR。此函数使用前需要创建kdb_utils_function扩展。
例子:
在指定节点的所有“b”子节点之前插入:
SELECT insertchildxmlbefore('<a>one<b>23</b><b>two<d>four</d></b></a>', '/a', 'b', '<c>three</c>');在指定节点的第一个“b”子节点之前插入:
SELECT insertchildxmlbefore('<a>one<b>two</b></a>', '/a', 'b[1]', '<c>three</c>');在指定节点的第二个“b”子节点之前插入:
SELECT insertchildxmlbefore('<a>one<b>23</b><b>two<d>four</d></b></a>', '/a', 'b[2]', '<c>three</c>');
8.167. INSERTXMLAFTER
用法:
insertxmlafter(xml_instance xml, xpath text , value_expr xml) insertxmlafter(xml_instance xml, xpath text , value_expr xml,namespace _text)功能:
函数
insertxmlafter将``value_expr``提供的值插入到``xpath``指定的节点之后。成功则返回插入后的``xml_instance``数据,失败则返回ERROR。此函数使用前需要创建kdb_utils_function扩展。
例子:
SELECT insertxmlafter('<a xmlns="http://example.com"><b>test</b></a>', '//mydefns:b/text()', '<name>newnode</name>', ARRAY[ARRAY['mydefns', 'http://example.com']]);
8.168. INSERTXMLBEFORE
用法:
insertxmlbefore(xml_instance xml, xpath text , value_expr xml) insertxmlbefore(xml_instance xml, xpath text , value_expr xml,namespace _text)功能:
函数
insertxmlbefore将``value_expr``提供的值插入到``xpath``指定的节点之前。成功则返回插入后的``xml_instance``数据,失败则返回ERROR。此函数使用前需要创建kdb_utils_function扩展。
例子:
SELECT insertxmlbefore('<a><b>b</b></a>','/a/b','<c>c</c>'); SELECT insertxmlbefore('<a><b></b></a>','/a/b','<c>c</c>'); SELECT insertxmlbefore('<a><b></b></a>','/a/b','<c></c>'); SELECT insertxmlbefore('<a xmlns="http://example.com"><b>test</b></a>', '//mydefns:b/text()', '<name>newnode</name>', ARRAY[ARRAY['mydefns', 'http://example.com']]);
8.169. INSTR
用法:
instr(expr1 text, expr2 text,[expr3 int[,expr4 int]])功能:
在父字符串 expr1 中的第 expr3 个位置(从 1 开始)以字符为单位开始查找第 expr4 次出现的子字符串的位置,0 表示不包含子字符串 expr2。如果expr3 为负,则从 expr1 的倒数第 expr3 个位置开始反向查找,位置依然是从字符串开头算起。
例子:
SELECT instr('bcaaaaabbc', 'a', -2);
8.170. INSTRB
用法:
instrb(expr1 text,expr2 text,[expr3 int[,expr4 int]])功能:
在父字符串 expr1 中的第 expr3 个位置(从 1 开始)以字符为单位开始查找第expr4 次出现的子字符串的位置, 0 表示不包含子字符串 expr2。如果 expr3 为负,则从 expr1 的倒数第 expr3 个位置开始反向查找,位置依然是从字符串开头算起。
例子:
SELECT instrb(’bcaaaaabbc’, ’a’, -2);
8.171. ISEMPTY
用法:
isempty(anyrange)功能:
判断范围
anyrange是否为空。例子:
SELECT isempty(numrange(1.1,2.2));
8.172. ISFINITE
用法:
isfinite(date) isfinite(timestamp) isfinite(interval)功能:
判断传入参数是否为有限值。
例子:
SELECT isfinite(date '2001-02-16'); SELECT isfinite(timestamp '2001-02-16 21:28:30'); SELECT isfinite(interval '4 hours');
8.173. ISNULL
用法:
isnull(expr1任意类型, expr2任意类型)功能:
等同于函数
NVL(expr1任意类型,expr2任意类型)。当expr1为 NULL 时,用expr2代替本表达式的值;否则本函数的值保持expr1的原值。另外expr1及expr2数据类型可以是系统的数据类型中的某一个(如:TEXT、INTEGER、FLOAT等),expr1和expr2的数据类型应该一致。如果
expr1不为 NULL,数据类型同expr1;如果expr1为 NULL, 数据类型同expr2。在兼容性方面,
ISNULL相当于 MSSQL 2005中的ISNULL函数、KingbaseES中的NVL函数、ORACLE中的NVL函数。例子:
SELECT ISNULL('2001-01-10', TO_DATE('05 Dec 2000', 'DD Mon YYYY')) AS RESULT1, ISNULL(NULL, TO_DATE('05 Dec 2000', 'DD Mon YYYY')) AS RESULT2, ISNULL(NULL, 123) AS RESULT3, ISNULL(789, 123) AS RESULT4, ISNULL(NULL, '123') AS RESULT5;
8.174. ISOPEN
用法:
isopen(path)功能:
几何函数,判断参数是否一个开放路径。
例子:
isopen(path '[(0,0),(1,1),(2,0)]')
边栏推荐
- One of the series of composition principle analysis, the design principle of composition
- 时间序列-第三方库:tsfresh【特征提取、特征选择】
- Decompile the jar package / class file / modify the jar package using the decompile plug-in of idea
- 实现城市治理一网统管,必须这 4 个关键技术
- JS div scroll to the bottom
- 什么是Per-Title编码?
- c# 字节数组和类相互转换
- Ten year structure five year Life-05 first business trip
- 【C语言基础】16 可变数组(数组长度可扩展)
- non-Boost Asio 笔记: UDP UART SocketCAN Multicast UDS
猜你喜欢
随机推荐
Seven sorts -- detailed explanation of ten thousand words
三数之和:(排序+双指针+剪枝)
[C language foundation] 16 variable array (array length can be extended)
【C语言基础】16 可变数组(数组长度可扩展)
【PyTorch】cuda()与to(device)的区别
Deeply understand mvcc and bufferpool caching mechanism
华泰证券可以网上开户吗安全吗
开源进销存系统,10分钟搞定,建议收藏!
网络通信原理与IP地址的分配原理,网络七层由下往上分别为物理层、数据链路层、网络层、传输层、会话层、表示层和应用层
Practice of online problem feedback module (11): realize image download function
[azure event center] try new functions of azure event hub -- geo disaster recovery
Moment get week, month, quarter, year
These four key technologies are necessary to realize the unified management of urban governance through one network
Is it safe for Huatai Securities to open an account online? Is it true
leetcode 1074. Number of Submatrices That Sum to Target(和为target的子矩阵个数)
[MySQL] cursor
Scala object
什么是Per-Title编码?
十年架构五年生活-05第一次出差
软考 系统架构设计师 简明教程 | 需求工程









