返回首页

gbase数据、南大通用产品文档:GBase8aINSTR()

更新日期:2024年09月11日

语法格式
INSTR(str,substr)
INSTR(str,substr,start_position,N)
表5- 10 参数说明
参数
说明
str
字符串母串。
substr
字符串子串。
start_position
表示从字符串(左端)第几个字符开始匹配, 如是负数,则
从右端往前反向查找子串。可选参数,默认为1。
nth_appearance
从start_position 开始向字符串尾方向查找第几个匹配字符
串。可选参数,默认为1。
函数说明

第一种语法功能:
返回子串substr 在字符串str(左端开始)第一次出现的位置。如果没有,返
回0。如果有一个参数为NULL,则返回NULL。

第二种语法功能:
1. 查找第nth_appearance 个匹配字符串的功能;
2. 从母串的第start_position 个字符开始查找匹配字符串的功能;
3. 支持第三个参数start_position 为负数的情况,即从母串右侧第
|start_position|个位置反向查找子串的功能。

GBase 8a MPP Cluster 产品手册
5 数据库管理指南
文档版本953(2022-09-15)
南大通用数据技术股份有限公司
694
说明
substr 在str 中的位置,以1 开始计数。
返回的位置是按全字符串正向位置计数的,与从哪个位置开始无关
示例
示例1:返回“bar”在“foobarbar”中第一次出现的位置。
gbase> SELECT INSTR('foobarbar', 'bar') FROM dual;
+---------------------------+
| INSTR('foobarbar', 'bar') |
+---------------------------+
|
4 |
+---------------------------+
1 row in set
示例2:“foobar”不在“xbar”中。
gbase> SELECT INSTR('xbar', 'foobar') FROM dual;
+-------------------------+
| INSTR('xbar', 'foobar') |
+-------------------------+
|
0 |
+-------------------------+
1 row in set
示例3:如有任一参数是一个二进制字符串,则它是字母大小写敏感的。
gbase> SELECT INSTR('foobarbar', BINARY 'Bar') FROM dual;
+----------------------------------+
| INSTR('foobarbar', BINARY 'Bar') |
+----------------------------------+
|
0 |
+----------------------------------+
1 row in set
示例4:从字符串“beiwelcometobeijing”第三个字符开始匹配,查找“bei”第一
次出现的位置。
gbase> SELECT INSTR ('beiwelcometobeijing','bei',3) FROM dual;
+-----------------------------------+
| INSTR('beiwelcometobeijing','bei',3) |
+-----------------------------------+
|
13 |
+-----------------------------------+
1 row in set

GBase 8a MPP Cluster 产品手册
5 数据库管理指南
文档版本953(2022-09-15)
南大通用数据技术股份有限公司
695
示例5:
从字符串
“112111222222333333”
第一个字符开始匹配,
查找第二个
“11”
出现的位置。
gbase> SELECT INSTR ('112111222222333333','11',1,2) FROM dual;
+--------------------------------------+
| INSTR('112111222222333333','11',1,2) |
+--------------------------------------+
|
4 |
+--------------------------------------+
1 row in set
示例6:从字符串“welcometochina”倒数第一个字符开始匹配,查找第一个“e”
出现的位置。
gbase> SELECT INSTR ('welcometochina','e',-1,1) FROM dual;
+----------------------------------+
| INSTR('welcometochina','e',-1,1) |
+----------------------------------+
|
7 |
+----------------------------------+
1 row in set

每当多个程序并发地访问一个数据库(且当其中至少有一个可修改数据时,)所有程序必
须允许在它们读数据时,另一程序可更改该数据的可能性。数据库服务器提供锁和隔离级
别的机制,其通常允许程序运行,如同它们独占数据一样。
SET STATEMENT CACHE 语句允许您将反复地使用的相同的 SQL 语句存储在缓冲区中。
当打开语句高速缓存时,数据库服务器存储相同的语句,因此可在不同的用户会话之中重
用它们,而无需为每个会话都分配内存。



GBase 8s SQL 指南:教程
南大通用数据技术股份有限公司
- 262 -
12 创建和使用 SPL 例程
本部分描述如何创建和使用 SPL 例程。
SPL 例程是以 GBase 8s
“存储过程语言”
(SPL)
编写的用户定义的例程。GBase 8s SPL 是提供流控制的 SQL 的扩展,诸如循环和分支。
在数据库上有 Resource 权限的任何人都可创建 SPL 例程。
尽可能地解析和优化以 SQL 编写的例程,然后以可执行的格式存储在系统目录表中。对
于 SQL 密集的任务,SQL 例程可能是一个好的选择。SPL 例程可执行以 C 或其他外部
语言编写的例程,且外部的例程可执行 SPL 例程。
您可使用 SPL 例程来执行您可以 SQL 执行的任何任务,
且可扩展您可单独使用 SQL 完
成的任务。由于 SQPL 是数据库的本地语言,且当创建 SPL 例程而不是在运行时时,解
析和优化 SPL 例程,对于某些任务,SPL 例程可提升性能。SPL 例程还可减少客户机应
用程序与数据库服务器之间的流量并降低程序复杂度。
在 GBase 8s SQL 指南:语法 中描述每一 SPL 语句的语法。每一语句都配有示例。

GBase 8s ODBC Driver 实现 Microsoft™“开放数据库互连”(ODBC)Version 3.0 标准。
GBase 8s ODBC Driver 产品还提供下列特性和功能:
• Data Source Name (DSN) 迁移
• Driver Manager Replacement Module,支持 ODBC 2.x 应用程序与 ODBC 驱动程
序 Version 3.00 之间的兼容性。
• Microsoft Transaction Server (MTS),允许您开发、运行和管理可伸缩的、基于组
件的 Internet 和 intranet 服务器应用程序的一种环境。MTS 执行下列任务:
o
管理系统资源,
包括进程、
线程和数据库连接,
以便于应用程序可缩放满足
许多并发用户
o
管理服务器组件创建、执行和删除
o
自动地开始和控制事务,实现应用程序的可靠性
o
实现安全性,以便于未获授权的用户不可访问应用程序
o
为配置、管理和部署提供工具
重要: 如果想要以 GBase 8s ODBC Driver 来使用由 MTS 管理的分布式事务,则必
须启用连接池。
• 扩展的数据类型,包括 row 和 collection
• 长标识符
• 对书签的有限支持
• GLS 数据类型
• 广泛的错误检测
• Unicode 支持
• XA 支持
• 对互联网 128 位协议的 Internet Protocol Version 6 支持(要获取更多信息,请参
阅《GBase 8s 管理员指南》。)
支持扩展的数据类型
GBase 8s ODBC Driver 支持扩展的数据类型。
GBase 8s ODBC Driver 支持下列扩展的数据类型:
• 集合(LIST、MULTISET、SET)
• DISTINCT
• OPAQUE(固定的、未命名的)
• row(命名的,未命名的)
• 智能大对象(BLOB、CLOB)
• 支持某些扩展的数据类型的客户机函数
支持 GLS 数据类型
GBase 8s ODBC Driver 支持 GLS 数据类型。
GBase 8s ODBC Driver 支持下列 GLS 数据类型:
• NCHAR

GBase 8s ODBC Driver 程序员指南
南大通用数据技术股份有限公司
- 6 -
• NVARCHAR
扩展的错误检测
GBase 8s ODBC Driver 检测 XA 类型错误。