yong164970 2014-12-29 09:34
浏览 1236

oracle 00306 调用‘||’时个数或参数错误

create or replace procedure lable_to_lable_relation is
Cursor phases
is
select distinct lt.phase from lable_temple lt ;

phaseName varchar2(100);

sqlStr varchar2(2000);
begin
--创建标签关系表
sqlStr:='create table SYSTEM.lable_relation (id number(16) primary key, lable_id number(16),parent_id number(16),del_mark number(1),levels number(2))';
EXECUTE IMMEDIATE sqlStr;

--插入数据第一层数据(表的序列为lable_relation_seq_test)
sqlStr:='
insert into lable_relation(id,lable_id,parent_id,del_mark,levels)
select lable_relation_seq_test.nextval,
(select tl.id from test_lable tl where tl.lable_name = A.lableName) as lable_id,
0 as parent_id,
0 as delmark,
(select tl.lable_type_id
from test_lable tl
where tl.lable_name = A.lableName) as leavels
from (select distinct lt.phase as lableName from lable_temple lt) A';
EXECUTE IMMEDIATE sqlStr;
--插入第二层数据信息
for phaseName in phases
Loop
sqlStr:='
insert into lable_relation(id,lable_id,parent_id,del_mark,levels)
select (select tl.id from test_lable tl where tl.lable_name = A.lableName) as lable_id,
(select A.id
from (select lr.id, lr.parent_id, lr.del_mark, lr.levels
from lable_relation lr
where lr.lable_id in
(select tl.id
from test_lable tl
where tl.lable_name ='||phaseName||' )) A
where A.levels = 1
start with A.parent_id = 0
Connect by prior A.id = A.parent_id) as parent_id,
0 as del_mark,
(select tl.lable_type_id
from test_lable tl
where tl.lable_name = A.lableName) as leavels
from (select distinct lt.subject as lableName
from lable_temple lt
where lt.phase ='||phaseName||' ) A';
EXECUTE IMMEDIATE sqlStr;
end Loop;
--插入敌三层数据信息

end lable_to_lable_relation;

  • 写回答

0条回答 默认 最新

    报告相同问题?

    悬赏问题

    • ¥15 交替优化波束形成和ris反射角使保密速率最大化
    • ¥15 树莓派与pix飞控通信
    • ¥15 自动转发微信群信息到另外一个微信群
    • ¥15 outlook无法配置成功
    • ¥30 这是哪个作者做的宝宝起名网站
    • ¥60 版本过低apk如何修改可以兼容新的安卓系统
    • ¥25 由IPR导致的DRIVER_POWER_STATE_FAILURE蓝屏
    • ¥50 有数据,怎么建立模型求影响全要素生产率的因素
    • ¥50 有数据,怎么用matlab求全要素生产率
    • ¥15 TI的insta-spin例程