oracle如何用存储过程建表?

1、表名为变量,是传入参数。2、字段数固定,但字段名仍是变量,也是传入参数。才开始学oracle,望高人指点,小弟不胜感激。就一个独立的表。表内的数据不管它,仅仅建个表。... 1、表名为变量,是传入参数。
2、字段数固定,但字段名仍是变量,也是传入参数。
才开始学oracle,望高人指点,小弟不胜感激。
就一个独立的表。
表内的数据不管它,仅仅建个表。
字段名不固定,变量,是传入参数,但有多少个字段是固定的。
表名也是传入参数。
比如过程a(b,c,d);
b,c,d为输入参数,b作为表名,c,d是表的2个字段名。全是字符串。
展开
 我来答
badkano
2009-02-10 · 知道合伙人体育行家
badkano
知道合伙人体育行家
采纳数:144776 获赞数:885374
团长

向TA提问 私信TA
展开全部
说的不明白
1.建什么样的表?
2.字段是怎么样的变量?
3.表内的数据怎么来?仅仅是一个表吗?

参数是怎么来的?输入的参数还是按照日期来的?
变量名是怎么来的?手动输入的字段名参数还是怎么?
我看你就把你想做什么说出来,你这样没法弄
----------------------------------------------------------------------
PROCEDURE SP_CREATE_new_table
(
on_flag OUT NUMBER,
out_reason OUT VARCHAR2
)
is
v_sql1 varchar2(2000);
v_a varchar2(1);
v_b varchar2(1);
v_c varchar2(1);

begin

select 'a' into v_a from dual;
select 'b','c' into v_b,v_c from dual;

v_sql1 :='create table '||v_a||'('||v_b||' varchar2(1),'||v_c||' varchar2(1))';
EXECUTE IMMEDIATE v_sql1;

commit;

EXCEPTION
WHEN OTHERS
THEN
on_flag := SQLCODE;
out_reason := SUBSTR (SQLERRM, 1, 255);
ROLLBACK;
END;

有什么看不懂的就问吧
运行后,执行select * from a;
表名就叫a,字段名叫b和c,都是按你说的
百度网友788f26425
2009-02-10 · 超过15用户采纳过TA的回答
知道答主
回答量:62
采纳率:100%
帮助的人:0
展开全部
在存储过程里可以先通过字符串的方式拼接一个SQL

然后execute这个SQL

要注意的是在Procedure里面执行create需要赋权
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式