CREATE OR REPLACE PROCEDURE p_a IS p_sql VARCHAR2(2000); a VARCHAR2(20); BEGIN a := '12580'; p_sql := 'select * from t1 where c1 = '||a||''; --DBMS_OUTPUT.PUT_LINE(p_sql); EXECUTE IMMEDIATE p_sql; commit; END;
commit;去掉 如果是增删该要加上
CREATE OR REPLACE PROCEDURE --存储过程名 IS BEGIN --存储过程体 END; 行1: CREATE OR REPLACE PROCEDURE 是一个SQL语句通知Oracle数据库去创建一个叫做skeleton存储过程, 如果存在就覆盖它; 行2: IS关键词表明后面将跟随一个PL/SQL体。 行3: BEGIN关键词表明PL/SQL体的开始。 行4: NULL PL/SQL语句表明什么事都不做,这句不能删去,因为PL/SQL体中至少需要有一句; 行5: END关键词表明PL/SQL体的结束
CREATE OR REPLACE PROCEDURE ptest AS CURSOR temp IS SELECT * FROM tablename; BEGIN FOR i IN temp LOOP Dbms_Output.put_line(i.co); END LOOP; END ptest;
CREATE OR REPLACE PROCEDURE p_a IS
p_sql VARCHAR2(2000);
a VARCHAR2(20);
BEGIN
a := '12580';
p_sql := 'select * from t1 where c1 = '||a||'';
--DBMS_OUTPUT.PUT_LINE(p_sql);
EXECUTE IMMEDIATE p_sql;
commit;
END;
IS
BEGIN
--存储过程体
END;
行1:
CREATE OR REPLACE PROCEDURE 是一个SQL语句通知Oracle数据库去创建一个叫做skeleton存储过程, 如果存在就覆盖它;
行2:
IS关键词表明后面将跟随一个PL/SQL体。
行3:
BEGIN关键词表明PL/SQL体的开始。
行4:
NULL PL/SQL语句表明什么事都不做,这句不能删去,因为PL/SQL体中至少需要有一句;
行5:
END关键词表明PL/SQL体的结束
CURSOR temp IS SELECT * FROM tablename;
BEGIN
FOR i IN temp
LOOP
Dbms_Output.put_line(i.co);
END LOOP;
END ptest;