带有一个in参数和多个out参数的Oracle运行过程

带有一个in参数和多个out参数的Oracle运行过程,oracle,stored-procedures,plsql,Oracle,Stored Procedures,Plsql,我刚开始使用Oracle,在开始向应用程序添加内容之前,我正在使用SQL Developer进行测试,但我遇到了一些问题,因为Oracle的行为与我使用过的所有其他数据库引擎不同 我创建了一个虚拟表: CREATE TABLE "ROOT"."EMPLOYEES" ( "ID" NUMBER NOT NULL ENABLE, "FIRSTNAME" VARCHAR2(30 BYTE) NOT NULL ENABLE, "LASTNAME" VARCHAR2(30 BYTE) NOT N

我刚开始使用Oracle,在开始向应用程序添加内容之前,我正在使用SQL Developer进行测试,但我遇到了一些问题,因为Oracle的行为与我使用过的所有其他数据库引擎不同

我创建了一个虚拟表:

CREATE TABLE "ROOT"."EMPLOYEES" 
(   "ID" NUMBER NOT NULL ENABLE, 
"FIRSTNAME" VARCHAR2(30 BYTE) NOT NULL ENABLE, 
"LASTNAME" VARCHAR2(30 BYTE) NOT NULL ENABLE, 
"EMAIL" VARCHAR2(40 BYTE) NOT NULL ENABLE, 
 CONSTRAINT "EMPLOYEES_PK" PRIMARY KEY ("ID")
)
然后我创建了一个过程:

 create or replace PROCEDURE get_employee
(
  emp_id IN NUMBER,
  m_FirstName OUT Varchar2,
  m_LastName OUT Varchar2,
  m_Email OUT Varchar2
)
AS
BEGIN
SELECT 
   FirstName
   ,LastName
   ,Email
INTO
   m_FirstName,
   m_LastName,
   m_Email
FROM EMPLOYEES
WHERE
  ID = emp_id;
END get_employee;
问题是,当我尝试运行该过程时,会出现编译错误:

Declare x VARCHAR2(30);
y VARCHAR2(30);
z VARCHAR2(40);

Begin
exec GET_EMPLOYEE(1, :x, :y, :z);
SYS.DBMS_OUTPUT.PUT_LINE(x);
End; 
我得到这个错误:

ORA-06550:第8行第4列: PLS-00103:在预期以下情况时遇到符号“文件结束”:

(如果循环模式为goto,则开始案例声明结束异常退出 null pragma raise return select update with with with with with 双引号的标识符 06550.00000-“第%s行,第%s列:\n%s” *原因:通常是PL/SQL编译错误。 *行动: PL/SQL过程已成功完成


我真的不知道如何更改对该过程的调用以使其与SQL Developer一起工作。如有任何帮助,将不胜感激。

这是正确的语法

Declare 
x VARCHAR2(30);
y VARCHAR2(30);
z VARCHAR2(40);

Begin
GET_EMPLOYEE(1, x, y, z);
DBMS_OUTPUT.PUT_LINE(x);
End;

或另一版本的存根执行

var x varchar2(30);
var y varchar2(30);
var z varchar2(40);
exec GET_EMPLOYEE(1, :x, :y, :z);

将此行替换为:
exec GET_EMPLOYEE(1,:x,:y,:z);
仅为
GET_EMPLOYEE(1,x,y,z);
-删除
exec
和所有冒号。同时将
//code>放在最后一个
结束之后;