【问题标题】:ORA-01461: can bind a LONG value only for insert into a LONG column via AccessORA-01461: 只能绑定 LONG 值,以便通过 Access 插入 LONG 列
【发布时间】:2017-08-29 08:20:22
【问题描述】:

我正在尝试在 Oracle 数据库的 Access 中运行以下查询:-

UPDATE tblQuotesNew SET tblQuotesNew.Quote_Status = 'Expired' 
WHERE tblQuotesNew.Quote_Status='In Progress' AND tblQuotesNew.Date_Quote_Sent<DateAdd('m',-1,Date())

Quote_Status 的数据类型为 VARCHAR2,大小为 255。Date_Quote_Sent 的数据类型为 Date。

我正在使用以下代码连接到 Oracle 数据库:-

Dim mydb        As DAO.Database
Dim myq         As DAO.QueryDef

connectstring = "ODBC;DSN=Comsales;UID=Comsales;PWD=******;SERVER=PDBREPT"

sqltext = "UPDATE tblQuotesNew SET tblQuotesNew.Quote_Status = 'Expired' WHERE tblQuotesNew.Quote_Status='In Progress' AND tblQuotesNew.Date_Quote_Sent<DateAdd('m',-1,Date());"

myq.ReturnsRecords = False
myq.Connect = connectstring
myq.SQL = sqltext
myq.Execute
myq.Close

当我运行这个查询时,我得到一个 ORA-01461: can bind a LONG value only for insert into a LONG column 错误。

【问题讨论】:

  • 抱歉,我把它留在那里进行测试。已编辑。谢谢
  • dateadd() 和date() 不是Oracle 内置函数,最后的分号也是个问题;但那些并没有解释那个错误号。不确定它认为你有什么约束力。不过我不清楚,您实际上是针对 Oracle 数据库还是针对链接表执行此操作? (this 可能相关?)

标签: oracle ms-access


【解决方案1】:

您正在将 Access 查询(使用 Access SQL 函数)作为传递查询(通过设置 connectstring = "ODBC;...)运行。

这行不通。在 Pass-Through 查询中使用 Oracle 语法,或在“常规”Access 查询中使用 Access 语法。

对于后者,tblQuotesNew必须是链接表,查询连接字符串必须为空。

【讨论】:

    猜你喜欢
    • 2012-07-08
    • 2013-06-01
    • 2014-09-20
    • 2020-06-22
    • 1970-01-01
    • 1970-01-01
    • 2016-05-07
    • 2014-08-09
    • 2017-05-13
    相关资源
    最近更新 更多