我正在尝试在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列错误。
答案 0 :(得分:1)
您正在运行Access查询(使用Access SQL函数)作为Pass-Through查询(通过设置connectstring = "ODBC;...
)。
这不会奏效。要么在Pass-Through查询中使用Oracle语法,要么在&#34; regular&#34;中使用Access语法。访问查询。
对于后者,tblQuotesNew
必须是链接表,查询连接字符串必须为空。