ORA-01461:只能通过Access将LONG值绑定到LONG列

时间:2017-04-04 08:30:41

标签: oracle ms-access

我正在尝试在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:只能插入一个LONG值才能插入LONG列错误。

1 个答案:

答案 0 :(得分:1)

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

这不会奏效。要么在Pass-Through查询中使用Oracle语法,要么在&#34; regular&#34;中使用Access语法。访问查询。

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