oracle数据库存储过程带输入参数建表的语法和在oracle中调用语法

大神们,随便给几个例子参照一下啊,oracle数据库存储过程带输入参数建表的语法和在oracle中调用语法

4个回答

 create or replace procedure danielinbiti(tableName IN VARCHAR2)
authid current_user
is
  strSQL VARCHAR2(5000);
  vn_ctn number(2);
begin
   dbms_output.put_line('1');
  strSQL := 'CREATE TABLE '|| tableName;
  strSQL := strSQL || '(';
  strSQL := strSQL || ' testField  VARCHAR2(20) NOT NULL,';
  strSQL := strSQL || ' testField2 VARCHAR2(60) NOT NULL';
  strSQL := strSQL || ' )';
   dbms_output.put_line(strSQL);
   select count(*) into vn_ctn from user_all_tables a where a.table_name like upper(tableName);
   dbms_output.put_line(tableName);
   if vn_ctn > 0 then
      execute immediate 'drop table ' || tableName;
   end if;
   execute immediate strSQL;
end ;


调用 
call danielinbiti('testtable1')

----------------------------建立存储过程:
CREATE OR REPLACE PROCEDURE P_name--存储过程名字
(
i_var in int, --输入参数1
o_var OUT varchar2 --输出参数1
)
IS
v_STR VARCHAR2(200); --定义存储过程内部的局部变量

BEGIN
--下面是存储过程的主体实现部分
v_STR := i_var;
dbms_output.put_line(v_STR);
o_var := v_STR;
exception--错误异常处理部分
when others then
dbms_output.put_line(sqlerrm);--打印错误信息
END P_name;

-----------------------------------调用存储过程示例:
declare
v_in int;
v_out varchar2(50);
begin
v_in :=100;
P_name (v_in,v_out); --调用存储过程P_name
dbms_output.put_line('存储过程输入结果为:'||v_out);
exception--错误异常处理部分
when others then
dbms_output.put_line(sqlerrm);--打印错误信息
end;

楼上回答的都很好,可以专门百度下,存储过程里循环和游标用的应该比较多

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问