2015-05-15 89 views
1

目標:擁有鏈接到客戶帳單的Excel文檔。PL/SQL CONCAT功能

期望中的PL/SQL輸出:

account_id | bill_id | '=HYPERLINK(".\"&'||bill_id||'&"-00.PDF")' 
-----------+---------+---------- 
12345  | 10  | =HYPERLINK(".\"&10&"-00.PDF") 
23456  | 11  | =HYPERLINK(".\"&11&"-00.PDF") 
34567  | 12  | =HYPERLINK(".\"&12&"-00.PDF") 

PL/SQL的查詢(documentation here)不拾取第二CONCAT和PL/SQL Developer生成標題爲 「變量」 要求值的彈出窗口。
Select account_id, bill_id, '=HYPERLINK(".\"&' || bill_id || '&"-00.PDF")' from customer_table
還測試
Select account_id, bill_id, CONCAT(CONCAT('=HYPERLINK(".\"&',bill_id),'&"-00.PDF")') from customer_table

電流輸出:

account_id | bill_id | '=HYPERLINK(".\"&'||bill_id||'&"-00.PDF")' 
-----------+---------+---------- 
12345  | 10  | =HYPERLINK(".\"&10) 
23456  | 11  | =HYPERLINK(".\"&11) 
34567  | 12  | =HYPERLINK(".\"&12) 

我沒有帶看到這個具體問題,我搜索,但如果我找到一個解決方案將更新。會有人看到這個問題或能夠提出一個解決方法嗎?

回答

1

&即與號被認爲是替代操作者在SQL*Plus。那麼,話雖如此,基於GUI的客戶端工具的大多數都能夠執行SQL * Plus命令。

您的客戶端工具正在考慮將&作爲替換運算符。您可以ESCAPE它。

set define off在會話級別。

例如,

SQL> SELECT 'HYPERLINK(".\"&10&"-00.PDF")' FROM dual; 
Enter value for 10: 
old 1: SELECT 'HYPERLINK(".\"&10&"-00.PDF")' FROM dual 
new 1: SELECT 'HYPERLINK(".\"&"-00.PDF")' FROM dual 

'HYPERLINK(".\"&"-00.PDF" 
------------------------- 
HYPERLINK(".\"&"-00.PDF") 

SQL> SET DEFINE OFF 
SQL> SELECT 'HYPERLINK(".\"&10&"-00.PDF")' FROM dual; 

'HYPERLINK(".\"&10&"-00.PDF" 
---------------------------- 
HYPERLINK(".\"&10&"-00.PDF") 

SQL> 
+0

我只是在看相同的結論([交] [1])。讓我真正閱讀這個問題,看看&符號可能是問題。 非常感謝您的意見。 [1]:http://stackoverflow.com/questions/1137354/oracle-pl-sql-escape-character-for-a –

+0

@ user3240704&符號是問題,請嘗試'set define off',然後重試。請標記爲已回答,會幫助他人。 –

0

嘗試以下查詢: -

SELECT account_id, bill_id, CONCAT('=HYPERLINK(".\"&',bill_id,'&"-00.PDF")') 
FROM customer_table;