oracle的trigger导致程序异常,怎样解决?

kindwell 2005-07-22 04:40:21
我在asp里面对oracle8i的表进行更新操作,对于一般的表更新操作正常,
但是对于一个有trigger的表,就出现了错误,信息如下:

Microsoft OLE DB Provider for ODBC Drivers エラー '80004005'

[Oracle][ODBC][Ora]ORA-01861: リテラルが書式文字列と一致しません。 ORA-06512: "IMICORA.IMIC_R101_UPDATE", 行 3 ORA-04088: トリガー IMICORA.IMIC_R101_UPDATEの実行中にエラーが発生しました。

/imic/DeliveryPrint.asp, 行 30

说是字符类型不一致,在trigger中发生错误。

trigger里的内容如下:

CREATE OR REPLACE TRIGGER IMICORA.IMIC_R101_UPDATE
BEFORE INSERT OR UPDATE
ON IMICORA.IDR101_RECEPTION_DATA
REFERENCING OLD AS OLD NEW AS NEW
FOR EACH ROW
BEGIN
/* ↓イメージ削除機能組み込み 2003/12/26 */
if (NVL(:new.R101_FAXDEL_DATE,'1900/01/01') = NVL(:old.R101_FAXDEL_DATE,'1900/01/01')) then
:NEW.R101_UPDATE_DATE := SYSDATE;
end if;
/* ↑イメージ削除機能組み込み 2003/12/26 */
END;
/

我写的sql如下:
update IDR101_RECEPTION_DATA set R101_SAMEDAY_DATA_UMU = 'A' , R101_FAXDEL_DATE = sysdate where R101_RECEPTION_NO = '180994'

其中R101_FAXDEL_DATE的字段类型是date型。
而且这句sql在object browser中执行正常,就是写在asp中就出现上述错误,
请各位指点。
...全文
245 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
kindwell 2005-07-25
  • 打赏
  • 举报
回复
在sqlplus里面执行正常的。
后来今天同事说查过书上发现可能是由于我们之前
用odbc连接oracle,而odbc对oracle的一些特性不
支持而导致的,用provider的字符串方式建立connection
就能够正常update了,但是用provider后,普通的
select又发生问题了,所以目前暂时用一个笨办法
来解决这件事,就是根据传过来的sql判断是select
的就用odbc的连接,是update类的就用provider的
连接。唉,真是麻烦。
Alkeen 2005-07-25
  • 打赏
  • 举报
回复
鸟语花香的,看不懂,帮顶一下吧

看那个trigger没问题啊,不过你在update R101_FAXDEL_DATE = sysdate 的话,应该里面if后的语句也没调用。你在SQL*Plus里跑这句update试试?
kindwell 2005-07-25
  • 打赏
  • 举报
回复
过了个周末,还是没人肯指点,再顶一下。
kindwell 2005-07-23
  • 打赏
  • 举报
回复
各位大侠帮忙支个招啊,提点建议也行,分不够再加。
路过的也帮忙顶一下吧,这个很急。
kindwell 2005-07-22
  • 打赏
  • 举报
回复
自己up一下,请各位指教!

17,086

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧