sys_tb0.a0是什么类型?含什么值啊?
select a0 into n_no from sys_tb0 只能给n_no赋一个值?是不是sys_tb0.a0包含多行?

解决方案 »

  1.   

    sys_tb0.a0是number类型,sys_tb0.a0只有一行数据.
      

  2.   

    create or replace procedure proc_dictionary(
    s_name in varchar2,  --数据字典中文名称
    s_type in varchar2,  --表单数据字典代码的类型
    s_long in varchar2   --表单数据字典代码的长度
    )
    as
    n_no sys_tb0.a0%type;
    str varchar2(500);
    begin
    select a0 into n_no from sys_tb0;
    str:='Create table Sys_c_tb'||n_no||'(
    a0 s_type(s_long),
    A1 varchar2(60),  --中文名称
    A2 varchar2(400), --对字段的说明 
    constraint PK+Sys_c_tb'||n_no||' primary key (a0)
    )';
    execute immediate str;
    insert into sys_tb1(a0,a1,a2) values (Sys_c_tb||n_no,s_name,0);
    update sys_tb0 set a0=a0+1;
    end;
    /
      

  3.   

    谢谢 beckhambobo(beckham) 这位大哥了,谢谢你的指点,可是我拷贝过去执行的时候,出现如下错误提示:
    Compilation errors for PROCEDURE OA2003.PROC_DICTIONARYError: PLS-00103: 出现符号"IMMEDIATE"在需要下列之一时:
           :=.(@%;
    Line: 17
    Text: execute immediate str;Error: Hint: Parameter 's_type' is declared but never used in 'proc_dictionary'
    Line: 3
    Text: s_type in varchar2,  --表单数据字典代码的类型Error: Hint: Parameter 's_long' is declared but never used in 'proc_dictionary'
    Line: 4
    Text: s_long in varchar2   --表单数据字典代码的长度
    麻烦你再帮我看一看,十分感谢啊!