Oracle 如何在单引号sql查询中使用管道?
我有一个软件包,代码如下所示 例如,当我使用此代码时Oracle 如何在单引号sql查询中使用管道?,oracle,plsql,Oracle,Plsql,我有一个软件包,代码如下所示 例如,当我使用此代码时 SELECT f.ID,(f.source||'-'||A.TITLE) AS source_system FROM T1 f LEFT JOIN T2 a ON f.SOURCE = a.code; 即时通讯,获得以下结果 id source_system 14 X-Unified 14 R-Clarity 14 G-Complete 14 C-South 14 E-East 但是,当我在如下所示的包中使用相同的查询时,我
SELECT f.ID,(f.source||'-'||A.TITLE) AS source_system FROM T1 f LEFT JOIN T2 a ON f.SOURCE = a.code;
即时通讯,获得以下结果
id source_system
14 X-Unified
14 R-Clarity
14 G-Complete
14 C-South
14 E-East
但是,当我在如下所示的包中使用相同的查询时,我遇到了一个错误,谁能帮助我如何在单引号oracle查询中使用管道
SEARCHSQL := 'SELECT ';
SEARCHSQL := SEARCHSQL || ' f.id,(f.SOURCE||''-''||a.TITLE) AS source_system FROM T1 f LEFT JOIN T2 a ON f.SOURCE = a.code';
工作原理如下:
SET SERVEROUTPUT ON;
CREATE TABLE T1
(
"SOURCE" VARCHAR2 (4000),
"ID" VARCHAR2 (4000)
);
CREATE TABLE T2
(
"CODE" VARCHAR2 (4000),
"TITLE" VARCHAR2 (4000)
);
DECLARE
SEARCHSQL VARCHAR2 (4000);
BEGIN
SEARCHSQL := 'SELECT ';
SEARCHSQL :=
SEARCHSQL
|| ' f.id,(f.SOURCE||''-''||a.TITLE) AS system FROM T1 f LEFT JOIN T2 a ON f.SOURCE = a.code';
DBMS_OUTPUT.put_line (SEARCHSQL);
EXECUTE IMMEDIATE SEARCHSQL;
END;
DROP TABLE T1;
DROP TABLE T2;
输出:
表T1已创建
表T2已创建
选择f.id,f.SOURCE | |'-'| | a.TITLE作为系统,从T1 f左连接t2a ON f.SOURCE=a.code
PL/SQL过程已成功完成
表T1已删除
表T2已删除
你犯了什么错误?你能展示一下你是如何使用这个字符串的吗?你展示的结构看起来不错。