使用带有ODP.NET的DbDataAdapter.Update()时遇到“ORA-01745:无效的主机/绑定变量名称”

时间:2015-12-30 06:19:32

标签: oracle11g datatable odp.net

我在oracle 11g中定义了一个表,其中包含以下语句:

[{"companyObject":{"28":"KEM","3":"COMPANY1","6":"218","21":"6.8",
"14":"33543","16":"7188572.3"}},
{"companyObject":{"28":"KEM","3":"COMPANY2","6":"219","21":"7.2",
"14":"35200","16":"7188111.7"}}]

我正在使用以下代码段来更新包含dataTable中内容的表:

  CREATE TABLE "TESTUSER"."TestTableOracleWriter" 
  ("name" VARCHAR2(100 BYTE), 
   "group" VARCHAR2(100 BYTE), 
   "number" NUMBER(*,0), 
   "creation" DATE, 
   "sliceidentifier" RAW(100), 
   CONSTRAINT "TESTTABLEORACLEWRITER_PK" PRIMARY KEY ("name")) 

但有时代码会因“ ORA-01745:无效的主机/绑定变量名”而失败,我在网上搜索并发现一些材料说它与oracle有关保留字。从link,“名称”,“组”和“数字”被标记为保留字。我可以更改我的表列名称以使代码工作。

但最奇怪的是代码不会一直失败,只有当dataTable只包含一行时才会失败,在其他情况下,它会按预期工作。任何人都有这方面的想法?

1 个答案:

答案 0 :(得分:5)

您不能使用关键字作为参数名称。 不要使用组和编号作为参数名称