EXEC SQL SELECT USERID, LOGDATE INTO :_USERID , :_LOGDATE FROM D_TABLE
WHERE USERID = :_ulUserID AND LOGDATE = TO_DATE(:_szDate, 'YYYY-MM-DD')会出现-2112的错误,是因为数据库中有两条用户和日期一样的数据。但是我写数据库的时候是没有插入,有则追加,而且是单线程操作的,为什么会出现重复的记录呢,想不通,望大侠救我!!
WHERE USERID = :_ulUserID AND LOGDATE = TO_DATE(:_szDate, 'YYYY-MM-DD')会出现-2112的错误,是因为数据库中有两条用户和日期一样的数据。但是我写数据库的时候是没有插入,有则追加,而且是单线程操作的,为什么会出现重复的记录呢,想不通,望大侠救我!!
alter table D_TABLE add constraint ud_unique unique(USERID,LOGDATE);防止类似的错误出现
EXEC SQL SELECT count(1) into :num_count FROM D_TABLE
WHERE USERID = :_ulUserID AND LOGDATE = TO_DATE(:_szDate, 'YYYY-MM-DD')dbms_output.putline(num_count);
看下打印出来的是不是1,如果不是1,是数据问题,如果是1那就应该没问题,看下是不是为0,如果没有数据取出来,也会报错的
你可以先把count(*)查出来 判断一下 防止结果为空的情况
然后加上rownum=1 防止多条记录的情况你这样 啥也不判断 报错的可能性很大