Oracle 10g是否符合ANSI SQL-1992子字符串功能标准?

Jav*_*cky 3 sql oracle ansi-sql ansi-sql-92

根据ANSI SQL-1992标准,第132页,这是ANSI子字符串函数的语法:

<character substring function> ::=
    SUBSTRING <left paren> <character value expression> FROM <start position>
    FOR <string length> ] <right paren>
Run Code Online (Sandbox Code Playgroud)

SQL开发人员在oracle 10g架构上的快速测试:

SELECT SUBSTRING('ASDF' FROM 1 FOR 1) FROM DUAL;
Run Code Online (Sandbox Code Playgroud)

结果是:

ORA-00907: missing right parenthesis
00907. 00000 -  "missing right parenthesis"
*Cause:    
*Action:
Error at Line: 1 Column: 28
Run Code Online (Sandbox Code Playgroud)

这是否意味着Oracle 10g不符合此特定ANSI标准?

我只想使用ANSI标准子字符串函数而不是特定于供应商的函数.

zud*_*kod 6

SUBSTR的 oracle文档

但你可以检查这个http://troels.arvin.dk/db/rdbms/#functions-SUBSTRING

不提供标准SUBSTRING功能.改为提供SUBSTR(input,start-pos [,length])(即length是可选的).Oracle提供了许多SUBSTR变体(SUBSTRB,SUBSTRC,SUBSTR2,SUBSTR4,与SUBSTR相同的语法),主要用于处理各种非拉丁语字符串类型.Oracle不支持使用特殊的SQL样式正则表达式进行字符串提取.相反,它具有REGEXP_SUBSTR函数,该函数使用POSIX样式的正则表达式模式匹配提供字符串提取.