我在关注 pl/sql 匿名时遇到问题。这是我的 pl/sql 块的缩小版本。我的代码有什么问题?
WHENEVER SQLERROR EXIT sql.sqlcode ROLLBACK
WHENEVER oserror EXIT FAILURE ROLLBACK
SET SERVEROUTPUT ON
SET ECHO OFF
SET DEFINE OFF
SET LINESIZE 120
SET AUTOCOMMIT OFF
BEGIN
update MYTABLE set GID = '12345' where MYTABLE.COLUMN1=456456 and MYTABLE.PARTY<>0 and MYTABLE.EXPIRY = to_date('17/05/2013','DD/MM/YYYY')
AND EXISTS (SELECT PARTIES.LABEL
FROM PARTIES
WHERE PARTIES.m_id = MYTABLE.PARTY_ID and PARTIES.LABEL = 'PARTY_NAME');
dbms_output.put_line( 'Rows Updated : ' || to_char(sql%rowcount));
END;
/
这是我得到的输出
更新 MYTABLE 设置 GID = '12345' 其中 MYTABLE.COLUMN1=456456 和 MYTABLE.PARTY0 和 MYTABLE.EXPIRY = to_date('17/05/2013','DD/MM/YYYY') * 第 2 行的错误: ORA-06550:第 2 行,第 8 列: PL/SQL: ORA-06552: PL/SQL: 编译单元分析终止 ORA-06553: PLS-488: 无效的变量声明: 对象 'TIMESTAMP' 必须是类型或子类型 ORA-06550:第 2 行,第 1 列: PL/SQL:忽略 SQL 语句