问题描述
- oracle数据库存储过程带输入参数建表的语法和在oracle中调用语法
-
大神们,随便给几个例子参照一下啊,oracle数据库存储过程带输入参数建表的语法和在oracle中调用语法
解决方案
解决方案二:
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;
解决方案四:
楼上回答的都很好,可以专门百度下,存储过程里循环和游标用的应该比较多
时间: 2024-12-21 12:46:04