2015-05-27 54 views
2

環境: DevArt驅動程序用於Oracle .NET 4.5插入INTO語句引起ORA-01756:引用字符串沒有正確結束

我試圖執行以下語句:

INSERT INTO T_CUSTOMERS_T 
    ("ID",  "NAME1",   "NAME2", "NAME",   "STREET", 
    "POSTAL", "CITY",    "COUNTRY", "TEL",   "MAIL", 
    "STATE",  "STATE_EX",   "REF") 
VALUES 
    (N'23frRRrg', N'Peter',   N'Hansel', N'Peter Hansel', N'Flowerpowerstreet 5', 
    N'88558', N'New York',  N'US',  N'1801810',  N'[email protected]', 
    N'VALID', N'Record is valid', NULL); 

我從devart駕駛員以下異常:

Type: OracleException 
Message: ORA-01756: quoted string not properly terminated 

Call Stack: at Devart.Data.Oracle.ax.c(Int32 A_0) 
    at Devart.Data.Oracle.b9.a(String A_0) 
    at Devart.Data.Oracle.OracleCommand.InternalPrepare(Boolean implicitPrepare, Int32 startRecord, Int32 maxRecords) 
    at Devart.Common.DbCommandBase.ExecuteDbDataReader(CommandBehavior behavior, Boolean nonQuery) 
    at Devart.Data.Oracle.OracleCommand.ExecuteNonQuery() 
    at DataConnection.AddRecords(TableMetadata TableStructure, Dictionary`2[] Records) 

編輯:

我用odbc oracle驅動程序執行語句,它工作正常。我會在明天更新devart驅動程序,看看是否能解決問題。

+2

你好從[表波比]上(https://xkcd.com/327/)。 – dasblinkenlight

+1

是否有理由使用UTF-16文字?它沒有'N'的工作嗎?也沒有理由將列名放入引號中。 – ibre5041

+0

我需要支持unicode字符。我將在明天發佈C#代碼 – SeeSharp

回答

0

基於DevArt文檔OracleDataAdapter

INSERT INTO myTable(col1,col2col5,col7) VALUES ('data1','data2','data3',NULL) 
+1

雖然我會同意沒有必要對列名進行雙引號,也沒有(據我所知)使用Unicode文字,但我不相信這些東西會導致OP正在經歷的錯誤。您是否願意編輯您的答案並解釋您在OP的查詢中認爲不正確的內容?謝謝。 –

+0

@BobJarvis如何將這個SQL字符串包裝到源代碼中,以及傳遞給數據庫的是什麼,這是值得商榷的。另外DevArt驅動程序不是官方的Oracle驅動程序,而是基於反向啓動的東西。所以這些驅動程序是否支持Unicode字面值是值得懷疑的。 – ibre5041

+0

@LeBaptiste列的名稱由用戶指定。我需要引用他們:) – SeeSharp