【问题标题】:Insert Into Statement causes ORA-01756: quoted string not properly terminatedInsert Into Statement 导致 ORA-01756: 引用的字符串未正确终止
【发布时间】:2015-08-09 16:38:26
【问题描述】:

环境: 适用于 Oracle 的 DevArt 驱动程序 .NET 4.5

我正在尝试执行以下语句:

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'info@fixmeplease.com',
   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驱动看看能不能解决问题。

【问题讨论】:

  • 来自Bobby Tables的您好。
  • 有理由使用 UTF-16 文字吗?没有'N'它可以工作吗?也没有理由将列名放在引号中。
  • 我需要支持 unicode 字符。我明天给你贴 C# 代码

标签: c# oracle devart ora-01756


【解决方案1】:

基于 DevArt 文档OracleDataAdapter

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

【讨论】:

  • 虽然我同意没有真正的理由双引号列名,也没有(据我所知)使用 Unicode 文字,但我不相信这些事情会导致错误OP正在经历的。您是否愿意编辑您的答案并解释您认为在 OP 的查询中不正确的内容?谢谢。
  • @BobJarvis 这个 SQL 字符串是如何包装到源代码中的,以及传递给数据库的确切内容是有问题的。 DevArt 驱动程序也不是官方的 Oracle 驱动程序,而是基于逆向生成的驱动程序。因此,这些驱动程序是否甚至支持 Unicode 文字是值得怀疑的。
  • @LeBaptiste 列的名称由用户指定。我需要引用他们:)
  • 如果你需要指定列,在连接/格式化后你不应该有任何双引号。 String.Format("INSERT INTO myTable({0},{1}.{2})",col1,col2,col3);等等……
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2022-01-12
  • 1970-01-01
  • 1970-01-01
  • 2019-07-22
  • 2020-12-27
  • 1970-01-01
相关资源
最近更新 更多