Oracle Apex:带concat的条件值列表
我正在尝试根据从页面项获取的条件构建动态和有条件的LOV。我遇到了这个例子Oracle Apex:带concat的条件值列表,oracle,plsql,oracle-apex,lov,Oracle,Plsql,Oracle Apex,Lov,我正在尝试根据从页面项获取的条件构建动态和有条件的LOV。我遇到了这个例子 IF :P123_CHOICE = 'EMP' THEN RETURN 'SELECT ename d, empno r FROM emp'; ELSE RETURN 'SELECT dname d, deptno r FROM dept'; END IF; 但是我需要更复杂一点的东西: IF :P123_CHOICE = 'EMP' THEN RETURN 'SELECT enam
IF :P123_CHOICE = 'EMP' THEN
RETURN
'SELECT ename d, empno r
FROM emp';
ELSE
RETURN
'SELECT dname d, deptno r
FROM dept';
END IF;
但是我需要更复杂一点的东西:
IF :P123_CHOICE = 'EMP' THEN
RETURN
'SELECT ename||' : '||esurname d, empno r
FROM emp
WHERE (admin ='N' or ADMIN = 'Y')
';
ELSE
RETURN
'SELECT ename||' : '||esurname d, empno r
FROM emp
WHERE admin ='N'
';
END IF;
因此,我得到了以下错误:
*ORA-06550: line 3, column 21: PL/SQL: ORA-01756: quoted string not properly terminated ORA-01756: quoted string not properly terminated ORA-06550: line 1, column 13: PL/SQL: SQL Statement ignored ORA-06550: line 5, column 4: PLS-00103: Encountered the symbol "end-of-file" when expecting one of the following: ; ORA-01756: quoted string not properly terminated*
这显然是我无法解决的格式问题。非常感谢您的帮助。为了绕过特殊字符:
IF :P123_CHOICE = 'EMP' THEN
RETURN
q'[select ... ]';
ELSE
RETURN
q'[ select ...]';
END IF;
这很酷,也是保持字符串整洁的好方法。另一方面,如果您只是想转义一个引号,那么一个引号就可以做到这一点:
“从emp中选择ename d,empno r,其中admin=''N'
。两个单引号=字符串中的一个转义引号。这是非常基本的,你会在单引号样式上遇到比q函数更多的问题。好的,那么你如何从我的例子中摆脱concat呢?像这样| |'':“||