oracle存储过程变量赋值报错

CREATEORREPLACEPROCEDUREZBFLAGEXb(vdwlxvarchar,vbzsjvarchar)ISvSqlvarchar(8000);vTnam... CREATE OR REPLACE PROCEDURE ZBFLAGEXb
(
vdwlx varchar,
vbzsj varchar
)IS
vSql varchar(8000) ;
vTname varchar(100);
vTnameEx varchar(100);
BEGIN
vTname := 'ZBFlag_' + vdwlx;
vTnameEx := 'ZBFlagEx_' + vdwlx;
vSql :='create table '||vTname||' (dwbh varchar(100),dwmc varchar(200),flag number(1),dwlx number) ';
EXECUTE IMMEDIATE vSQL;
commit;

vTname 赋值的这句(vTname := 'ZBFlag_' + vdwlx;)报错了,我的写法不对是吗?正确的语法是什么呢,请大家指教。
展开
 我来答
流浪云风
2012-12-13 · TA获得超过4315个赞
知道大有可为答主
回答量:1119
采纳率:69%
帮助的人:920万
展开全部
ORACLE中字符串连接符是双竖线“||”。
把代码中的“+”换成“||”,另外,ddl语句不需要commit,去掉commit,代码如下:
CREATE OR REPLACE PROCEDURE aaa_Zbflagexb(Vdwlx VARCHAR,
Vbzsj VARCHAR) IS
Vsql VARCHAR(8000);
Vtname VARCHAR(100);
Vtnameex VARCHAR(100);
BEGIN
Vtname := 'ZBFlag_' || Vdwlx;
Vtnameex := 'ZBFlagEx_' || Vdwlx;
Vsql := 'create table ' || Vtname ||
' (dwbh varchar(100),dwmc varchar(200),flag number(1),dwlx number) ';
EXECUTE IMMEDIATE Vsql;
--COMMIT;
END;
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式