1
CREATE OR REPLACE procedure verify_employee
(emp_license IN trkdriver.L#%TYPE) 
IS
result VARCHAR2(10);

BEGIN
select e# INTO result
from trkdriver where l#='emp_license';
END;
/

上記は私の手順です

SQL> desc trkdriver;
 Name                                      Null?    Type
 ----------------------------------------- -------- ----------------------------

 E#                                        NOT NULL NUMBER(12)
 L#                                        NOT NULL NUMBER(8)
 STATUS                                    NOT NULL VARCHAR2(10)

私がしようとしました

SQL> execute verify_employee('10001');
BEGIN verify_employee('10001'); END;

*
ERROR at line 1:
ORA-01722: invalid number
ORA-06512: at "USER1.VERIFY_EMPLOYEE", line 7
ORA-06512: at line 1

何を間違えたのか、入力した従業員ライセンスIDに基づいて選択する簡単な手順を試してみたいだけです。

4

2 に答える 2

1

''以下のように削除する必要があります。

CREATE OR REPLACE procedure verify_employee
(emp_license IN trkdriver.L#%TYPE) 
IS
result VARCHAR2(10);

BEGIN
select e# INTO result
from trkdriver where l#=emp_license;
END;
/

実行を終了します:

execute verify_employee(10001);
于 2012-11-25T18:48:48.183 に答える
0

l#は数値であり、それを string と比較しています: ... where l#='emp_license';

于 2012-11-25T18:47:12.180 に答える