我在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中就出现上述错误,
请各位指点。

解决方案 »

  1.   

    在sqlplus里面执行正常的。
    后来今天同事说查过书上发现可能是由于我们之前
    用odbc连接oracle,而odbc对oracle的一些特性不
    支持而导致的,用provider的字符串方式建立connection
    就能够正常update了,但是用provider后,普通的
    select又发生问题了,所以目前暂时用一个笨办法
    来解决这件事,就是根据传过来的sql判断是select
    的就用odbc的连接,是update类的就用provider的
    连接。唉,真是麻烦。