ltfce
- 所有模式的兼容函数和运算符。
提供了与所有模式兼容的功能。 函数和运算符是在 lt_catalog 下创建的。 下表列出了可以在所有模式中使用的功能。
Table E.48. 函数
项 |
概述 |
---|---|
DATABASE |
返回当前模式作为当前数据库 |
LOCATE |
返回字符串中子字符串的位置 |
Table E.49. 运算符类型兼容性
项 |
---|
LEFTARG:int2 RIGHTARG:text |
LEFTARG:int4 RIGHTARG:text |
LEFTARG:int8 RIGHTARG:text |
LEFTARG:text RIGHTARG:int2 |
LEFTARG:text RIGHTARG:int4 |
LEFTARG:text RIGHTARG:int8 |
LEFTARG:text RIGHTARG:numeric |
LEFTARG:numeric RIGHTARG:text |
DATABASE
LOCATE
描述
是 current_schema() 的同义词。在 MySQL 中,模式的概念类似于数据库。您可以通过设置搜索路径来指定当前模式。
语法
database() RETURNS text
通用规则
返回搜索路径中第一个模式的名称(如果搜索路径为空,则返回 null 值)。
与 MySQL 类似,如果创建表或其他命名对象时未指定目标模式,则将使用此模式。
示例
lightdb@lt_test=# select database(); database ---------- public (1 row)
描述
返回第一个子字符串的位置。
语法
LOCATE(substr TEXT,str TEXT) RETURNS INTEGER LOCATE(substr TEXT,str TEXT,POS INTEGER) RETURNS INTEGER
通用规则
第一种语法返回子字符串 substr 在字符串 str 中第一次出现的位置。
第二种语法返回从位置 pos 开始,子字符串 substr 在字符串 str 中第一次出现的位置。
如果 substr 不在 str 中,则返回 0。
如果任何参数为 NULL,则返回 NULL。
示例
在以下示例中,返回从位置 5 开始,在字符串 'foobarbar' 中子字符串 'bar' 的位置。
SELECT LOCATE('bar', 'foobarbar', 5); locate -------- 7 (1 row)
为文本类型和数值类型(int2、int4、int8、numeric)之间的运算符(例如'+', '-', '*', '/', '<', '<=', '>', '>=', '=', '<>' 和 '%')添加类型重载。
示例
使用它,您可以直接将 '1.1'::text 与 1 相加。
lightdb@test=# select '1.1'::text+1; ?column? ---------- 2.1 (1 row)
如果在 Oracle 或 MySQL 兼容类型中(请参见 lightdb_syntax_compatible_type), 根据“未知”可以在某些情况下转换为“text”的规则(有关详细信息,请参见 Chapter 11),您可以直接将 '1.1' 与 1 相加。
lightdb@test=# select '1.1'+1; ?column? ---------- 2.1 (1 row)