Oracle - 如何在带有 q 的转义中使用函数
Oracle - How to use a function inside an escape with q
我知道我可以在这样的语句中转义字符串:
select 'That''s a really funny ''joke''' from dual; --returns: That's a really funny 'joke'
或者像这样:
select q'[That's a really funny 'joke']' from dual; --returns: That's a really funny 'joke'
两者都工作正常。
假设我需要在那个 select 语句中准确地转义一个字符串,我还需要使用一个函数。
select q'[myfunction(somestringvariable)]' from dual;
当然这只是 returns "myfunction(somestringvariable)"
如前所述,我需要转义函数的结果(不能在函数内部完成,转义需要在这个 select 语句中进行)。
我可以在用“q”转义的字符串中以某种方式使用该函数吗?
谢谢!
Oracle 不支持模板文字。
只需使用:
SELECT myfunction(somestringvariable) FROM DUAL;
或者,如果函数没有 return 字符串:
SELECT TO_CHAR(myfunction(somestringvariable)) FROM DUAL;
如果您想连接带引号的字符串文字和函数结果,请使用字符串连接。
SELECT q'[That's a really funny 'joke']'
|| myfunction(somestringvariable)
FROM DUAL;
在函数结果中双引号:
REPLACE(myfunction(somestringvariable), '''', '''''')
我知道我可以在这样的语句中转义字符串:
select 'That''s a really funny ''joke''' from dual; --returns: That's a really funny 'joke'
或者像这样:
select q'[That's a really funny 'joke']' from dual; --returns: That's a really funny 'joke'
两者都工作正常。
假设我需要在那个 select 语句中准确地转义一个字符串,我还需要使用一个函数。
select q'[myfunction(somestringvariable)]' from dual;
当然这只是 returns "myfunction(somestringvariable)"
如前所述,我需要转义函数的结果(不能在函数内部完成,转义需要在这个 select 语句中进行)。
我可以在用“q”转义的字符串中以某种方式使用该函数吗?
谢谢!
Oracle 不支持模板文字。
只需使用:
SELECT myfunction(somestringvariable) FROM DUAL;
或者,如果函数没有 return 字符串:
SELECT TO_CHAR(myfunction(somestringvariable)) FROM DUAL;
如果您想连接带引号的字符串文字和函数结果,请使用字符串连接。
SELECT q'[That's a really funny 'joke']'
|| myfunction(somestringvariable)
FROM DUAL;
在函数结果中双引号:
REPLACE(myfunction(somestringvariable), '''', '''''')