【发布时间】: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 可能相关?)