oracle 的存储过程中 动态的创建一张表 然后插入一个变量到这个表中,表能动态的创建但是变量不能插入进去

 我来答
吾淑珍桂歌
2019-06-19 · TA获得超过3.7万个赞
知道小有建树答主
回答量:1.4万
采纳率:29%
帮助的人:1012万
展开全部
1、execute
immediate
'
insert
into
addtopinfo
values('||sysdate||','||v_name||')';
v_name
既然是变量
怎么可能会用'
'括号起来;
就算是
直接执行
的话
也是
execute
immediate
'
insert
into
addtopinfo
values(sysdate,v_name);
2、如果有v_name的话
,我建议你一般用拼sql的方式来执行
例如
如下格式(这个是我自己的procedure截取的,可以参考下)
v_CreateSql
:=
'
create
table
'
||vv_owner||'.'||
vv_name_temp
||
'
as
select
*
from
'
||
iv_name
||
'
where
1=0';
execute
immediate
v_CreateSql;
3、下次报错,请把你的出错情况提出来。我们怎么知道什么错呢?
野风门04
游戏玩家

2019-10-25 · 非著名电竞玩家
知道大有可为答主
回答量:1.4万
采纳率:29%
帮助的人:679万
展开全部
估计是缺少引号的缘故。v_name是varchar2的吧。
改成
execute
immediate
'
insert
into
addtopinfo
values('||sysdate||',‘‘'||v_name||'’’)';
试试,就是v_name变量在语句里要有引号
。拼接字符串时每两个“'”
会被解析成为一个“'”
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
欧阳青芬荤婷
2019-10-02 · TA获得超过3.7万个赞
知道大有可为答主
回答量:1.4万
采纳率:29%
帮助的人:890万
展开全部
即使不加引号也可以插入的
最多oracle会做个隐式转换,这不会有问题
而且v_name本身就是char类型,根本不能存在转换问题
我有个疑问P_addstaffnum
这个是楼主干什么用的?
至于报错的问题楼主少了分号和commit才是关键!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式