Plsql 为什么调用此过程时出错?

Plsql 为什么调用此过程时出错?,plsql,plsqldeveloper,plsql-package,Plsql,Plsqldeveloper,Plsql Package,我有一个程序名为student\u id procedure student_id ( v_surname in varchar2, v_name in varchar2, v_date_birth in varchar2, v_gender in varchar2, v_state in va

我有一个程序名为student\u id

 procedure student_id ( v_surname  in varchar2,  
                        v_name in varchar2,  
                        v_date_birth in varchar2,
                        v_gender in varchar2,
                        v_state in varchar2)  is l_student_id varchar2;
 begin
 l_student_id :=  par_surname(v_surname)       ||'-'||
                  par_name(v_name)             ||'-'||
                  par_date_birht(v_date_birth) ||'-'||
                  par_gender(v_gender)         ||'-'||
                  par_state(v_state);
 dbms_output.put_line('Student ID :  ' ||  l_student_id);
end student_id;
写入值后,我的预期输出应该是什么:

(学号:JOHN-SMITH-170692-M-CALIFORNIA)

我得到的错误是:

Error with beginning of line: 291  in the command -
procedure cod_fiscale ( v_surname  in varchar2,
Report error -
unknown command   

Error with beginning of line : 292 in the command -
                        v_name  in varchar2,
Report error -
unknown command  

Error with beginning of line : 293 in the command -
                        v_date_birth  in varchar2,
Report error -
unknown command    

Error with beginning of line : 294 in the command -
                        v_gender  in varchar2,
Report error -
unknown command    

SP2-0044:to get the list of known commands, enter HELP
and enter EXIT to exit.
Error with beginning of line : 295 in the command -
                        v_state  in varchar2) is l_student_id varchar2;
Report error -
unknown command    

Error with beginning of line : 296 in the command -
begin
 l_student_id :=  par_surname(v_surname)       ||'-'||
                  par_name(v_name)             ||'-'||
                  par_date_birht(v_date_birth) ||'-'||
                  par_gender(v_gender)         ||'-'||
                  par_state(v_state);
 dbms_output.put_line('Student ID :  ' ||  l_student_id);
end student_id;
Report error -
ORA-06550: line 9, column 25:
PLS-00103: Found symbol   "" 
06550. 00000 -  "line %s, column %s:\n%s"
*Cause:    Usually a PL/SQL compilation error.
*Action:
我粗略地翻译了我得到的错误,因为它是用另一种语言写的

*注意:这不是一个独立的过程,这段代码与我前面的问题有关

网址:*


我的错误是什么?错误的原因是什么?

在看不到包的其余部分的情况下,我可以发现一个问题:

procedure student_id ( v_surname  in varchar2,  
                        v_name in varchar2,  
                        v_date_birth in varchar2,
                        v_gender in varchar2,
                        v_state in varchar2)  is
  l_student_id varchar2; -- you need to declare the length of your variable
begin
  ...
您已经声明了变量的类型,但没有说明需要多长时间。应该是这样的:

l_student_id varchar2(400);

尽管您应该将400更改为该变量中存储的值的预期最大长度的正确值。

如果这是一个独立的过程,您需要在单词
过程
前面添加一个
创建
(或者更可能是一个
创建或替换
)我忘了提到它,这不是一个独立的过程。共有5个功能,本程序“统一”了5个功能。太好了,我会把我之前的问题联系起来。在开始之后,我也得到了一个错误,我得到了这个:Errore(398,23):PLS-00103:找到了符号“name”,而不是I:。(*%&=-+;in是mod rements而不是rem或!=或~=>=我建议您编辑您的问题以提供完整的软件包列表。我无法接受您提供的内容并亲自调试,因为没有足够的可用上下文。新问题可能存在于您的软件包中的其他地方。