可能重复:
Oracle:如果表存在
Drop表(如果存在)
我正在尝试创建此过程但我收到错误.
CREATE OR REPLACE PROCEDURE SP_VEXISTABLA(NOMBRE IN VARCHAR2)
IS
CANTIDAD NUMBER(3);
BEGIN
SELECT COUNT(*) INTO CANTIDAD FROM ALL_OBJECTS WHERE OBJECT_NAME = NOMBRE;
IF (CANTIDAD >0) THEN
DROP TABLE NOMBRE;
END IF;
END;
Run Code Online (Sandbox Code Playgroud)
错误是:
错误(8,1):PLS-00103:当遇到以下情况之一时遇到符号"END":(如果循环mod为空pragma引发返回选择更新,则使用<< continue close current delete fetch lock insert open rollback savepoint set sql execute commit forall merge pipe purge.
你知道我做错了什么吗?
我正在将一些MySQL 5.0函数转换为Oracle 11g。
我需要IF在一个盒子里放一个错误,但出现错误(缺少正确的括号),这是我的代码
SELECT SUM(
CASE PTIPO
WHEN 0 THEN (SELECT IF(A.NT = 0) THEN A.VALOR ELSE 0 END IF FROM DUAL)
WHEN 1 THEN (SELECT IF(A.NT = 1) THEN A.VALOR ELSE 0 END IF FROM DUAL)
WHEN 2 THEN (SELECT IF(A.NT = 1) THEN A.VALOR ELSE -A.VALOR END IF FROM DUAL)
END)
INTO nresp
FROM mov_caja a
JOIN enc_movp b ON a.docid = b.docid
JOIN c_caja c ON a.cajaid = c.cajaid
WHERE c.cajaid
Run Code Online (Sandbox Code Playgroud) 为什么oracle不承认这句话?它说在预期的地方找不到"来自关键字".它出什么问题了 ?
例:
select distinct a.id = b.id
from table1 a, table2 b
where a.column = X and b.column =Y;
Run Code Online (Sandbox Code Playgroud)
MySQL允许我这样做.那么我应该改变什么呢?