Oracle 用于检查字符串中的无效字符的PL/SQL函数
我试图在pl/sql中创建一个函数,该函数将接受一个字符串,并将该字符串拆分为一个数组,然后将拆分后的字符串数组与存储在数据库中的无效字符进行比较 我仍在试验中,因为遇到以下错误,所以没有测试apex_string.split: 错误7,1:PLS-00103:在预期以下情况之一时遇到符号DECLARE:begin function pragma procedure子类型current cursor delete在符号begin被替换为DECLARE继续之前存在 错误38:PLS-00103:在预期以下情况之一时遇到文件结尾符号:begin case declare end EXCEPT for goto if loop mod null pragma raise return select update with with with 删除DECLARE关键字,因为它不是必需的 要使用以下命令迭代数组:Oracle 用于检查字符串中的无效字符的PL/SQL函数,oracle,plsql,oracle-apex,Oracle,Plsql,Oracle Apex,我试图在pl/sql中创建一个函数,该函数将接受一个字符串,并将该字符串拆分为一个数组,然后将拆分后的字符串数组与存储在数据库中的无效字符进行比较 我仍在试验中,因为遇到以下错误,所以没有测试apex_string.split: 错误7,1:PLS-00103:在预期以下情况之一时遇到符号DECLARE:begin function pragma procedure子类型current cursor delete在符号begin被替换为DECLARE继续之前存在 错误38:PLS-00103:在
FOR splitcount IN 1 .. wordarray.COUNT LOOP
您不需要声明splitcount变量
不能多次读取光标。使用“选择”代替光标。。。大量收集到。。。并将无效值收集到一个集合中,您可以多次读取该集合
但是,看起来您可以将其简化很多:
在varchar2中创建无效的函数\u checkerinword
返回布尔值
是
有无效的整数;
开始
选择1
进了医院
从…起
选择SUBSTRinword,LEVEL,1作为ch
来自双重
逐级连接
删除DECLARE关键字,因为它不是必需的
要使用以下命令迭代数组:
FOR splitcount IN 1 .. wordarray.COUNT LOOP
您不需要声明splitcount变量
不能多次读取光标。使用“选择”代替光标。。。大量收集到。。。并将无效值收集到一个集合中,您可以多次读取该集合
但是,看起来您可以将其简化很多:
在varchar2中创建无效的函数\u checkerinword
返回布尔值
是
有无效的整数;
开始
选择1
进了医院
从…起
选择SUBSTRinword,LEVEL,1作为ch
来自双重
按级别连接我看到了这个问题并想,为什么要调用PL/SQL呢?这可以用SQL来回答
CREATE TABLE InvalidCharacter ( invalidchar ) AS
SELECT 'A' FROM DUAL UNION ALL
SELECT 'C' FROM DUAL UNION ALL
SELECT 'E' FROM DUAL;
select * from apex_string.split('ORACLE','')
where column_value not in (select invalidchar from invalidcharacter);
Result Sequence
---------------
O
R
L
我看到这个问题就想,为什么要调用PL/SQL呢?这可以用SQL来回答
CREATE TABLE InvalidCharacter ( invalidchar ) AS
SELECT 'A' FROM DUAL UNION ALL
SELECT 'C' FROM DUAL UNION ALL
SELECT 'E' FROM DUAL;
select * from apex_string.split('ORACLE','')
where column_value not in (select invalidchar from invalidcharacter);
Result Sequence
---------------
O
R
L
简单地删除declare,它是不需要的。简单地删除declare,它是不需要的。此SQL的准确部署将取决于您拥有的特定需求/输入,但它表明它可以在没有PL/SQL的情况下绑定。此SQL的准确部署将取决于您拥有的特定需求/输入,但它证明了它可以在没有PL/SQL的情况下绑定。