我正在嘗試針對Oracle數據庫的簡單INSERT語句。其中一個值是VARCHAR2字段,插入語句包含&符號。我該怎麼做呢?我嘗試以下方法:PL/SQL中的換行符&開發人員
- 逃脫&爲\ &與
- 一套一套逃生掃描關閉(這會導致ORA-00922缺失或無效選項錯誤)
- 集定義關(這會導致ORA-00922丟失或無效的選項錯誤)
任何其他想法?
我正在嘗試針對Oracle數據庫的簡單INSERT語句。其中一個值是VARCHAR2字段,插入語句包含&符號。我該怎麼做呢?我嘗試以下方法:PL/SQL中的換行符&開發人員
任何其他想法?
你有沒有試過類似的東西?
INSERT INTO tablex VALUES ('Sid ' || '&' || ' Nancy');
改進我的第一個答案,你的問題與PL/SQL Developer有關。如果你在PL/SQL Developer命令窗口中執行你的塊,你也可以使用標準的SET DEFINE OFF,這與SQL * Plus中的相同。
PL/SQL Developer需要時間熟悉的特性之一是大量不同的窗口類型。
其中之一是COMMAND窗口,它基本上是一個SQL * Plus仿真器。我們可以運行SQL * Plus命令以及SQL,因此SET ESCAPE
,SET DEFINE
和SET SCAN OFF
在該窗口中工作。
的CONCAT工作完全罰款,我下面是我在我的SELECT語句中所做的:
select FUND_NM
FROM PERFORMANCE
WHERE upper(FUND_DESC) in ('My L&' ||'L FUNDS')
我用chr(38)
,我需要在PL/SQL的符號。
addr:= 'mysite.com/order.aspx?no=5678' || CHR(38) || 'id=947';
--above line gives you 'mysite.com/order.aspx?no=5678&id=947';
這僅僅是一個SQL編輯器的問題。要解決這個問題,只需使用SET DEFINE OFF編譯過程; 。 執行是PL(在服務器中執行)不會遇到這個問題。
我在這個問題中使用chr(38)解決方案「解決」它:http://stackoverflow.com/questions/1137354/oracle-pl-sql-escape-character-for-a但想要的東西更優雅。 –
您是否試圖通過SQL窗口或命令窗口執行插入操作? –
雷,你有沒有嘗試將定義設置爲另一個角色,而不是完全將其設置爲關閉?不知道它是否會有所幫助,因爲我不使用PLSQL Developer,但它可能... – Ollie