asp执行 oracle update语句老报以下错误,sql语句在PLSQL里执行是没问题。错误如下:
Microsoft OLE DB Provider for ODBC Drivers 错误 '80040e14'
[Microsoft][ODBC driver for Oracle]语法错误或违反访问规则
/TCRM/Modules/Finace/DoSettle.asp,行 46
代码如下:
<!--#include file="./../../Common/OraAdmInc.asp"-->
<%
Dim SID,StartDate,EndDate,OrganID,strSQL,strSQL1
SID = Request("ReportID")
set rs=createobject("adodb.recordset")
Set rs = OpenDBr("select * from finreport where ReportID="&SID&"")
If Not rs.eof Then
StartDate = Rs("StartDate")
EndDate = Rs("EndDate")
OrganID =Rs("OrganID")
End If
rs.close
Dim DoRs
strSQL1 = "update finreport set state = 2 where ReportID="&SID&""
If SID <> "" Then
Set DoRs = OpenDBr("select * from finreport Where ReportID="&SID&"")
If Not DoRs.Eof Then
DoRs("state")=2
DoRs.Update
End If
DoRs.Close
strSQL = "update sale_group_order_insr set [money_status]='已缴款',[money_date]=to_date(to_char(sysdate,'yyyy-mm-ddhh24miss'),'yyyy-mm-ddhh24miss') where [money_status] is null and TO_CHAR (Buy_date, 'YYYY-MM-DD')>='"&StartDate&"' and TO_CHAR (Buy_date, 'YYYY-MM-DD')<='"&EndDate&"' and ins_owner_id=" & OrganID&""
OraConn.Excute(strSQL)
CloseConn
End If
%>
------解决方案--------------------
应该是语法错了,好好检查下,asp生成后的SQL放PL/SQL可以执行?
------解决方案--------------------
你看只修改一个字段试试,看行不行!行了就一个字段一个字段加上排除
------解决方案--------------------
写一个简单的你不会其它的update语句也报错吧?
------解决方案--------------------
哈哈,好仔细啊
------解决方案--------------------
"update finreport set state = 2 where ReportID='"&SID&"'"
ORALCE 没事带个单引号。保证没值时不报异常。
------解决方案--------------------
人家都说语句在plsql可以执行,还说语法错误,不是浪费人家时间
------解决方案--------------------
自己检查下驱动支持的oracle哪些特定函数,如果你的sql语句符合标准规定的,应该没问题,如果使用到了oracle特定的函数,就需要看你的驱动了,有些能在pl/sql执行,但是asp通过驱动链接就不一定支持那个函数了