Stored procedures 对过程的PL/SQL调用

Stored procedures 对过程的PL/SQL调用,stored-procedures,plsql,oracle11g,procedure,procedures,Stored Procedures,Plsql,Oracle11g,Procedure,Procedures,我编写了一个PL/SQL过程来更新表Employee的工资 create table Employee (ID VARCHAR2(4 BYTE) NOT NULL, First_Name VARCHAR2(10 BYTE), Last_Name VARCHAR2(10 BYTE), Start_Date DATE, End_Date DATE, Sala

我编写了一个PL/SQL过程来更新表Employee的工资

create table Employee
(ID                 VARCHAR2(4 BYTE)         NOT NULL,
First_Name         VARCHAR2(10 BYTE),
   Last_Name          VARCHAR2(10 BYTE),
   Start_Date         DATE,
   End_Date           DATE,
    Salary             Number(8,2),
   City               VARCHAR2(10 BYTE),
    Description        VARCHAR2(15 BYTE)
)
 /
这就是程序

CREATE OR REPLACE PROCEDURE update_employee_salary(
   p_factor IN NUMBER
    ) AS
    v_employee_count INTEGER;
    BEGIN
        UPDATE employee
       SET salary = salary * p_factor;
       COMMIT;
    EXCEPTION
     WHEN OTHERS THEN
       ROLLBACK;
   END update_employee_salary;
   /
CALL update_employee_salary (1.5)
当我尝试调用程序时

CREATE OR REPLACE PROCEDURE update_employee_salary(
   p_factor IN NUMBER
    ) AS
    v_employee_count INTEGER;
    BEGIN
        UPDATE employee
       SET salary = salary * p_factor;
       COMMIT;
    EXCEPTION
     WHEN OTHERS THEN
       ROLLBACK;
   END update_employee_salary;
   /
CALL update_employee_salary (1.5)

oracle显示
ORA-00900:无效的SQL语句

调用
过程的方法不正确
。您可以使用以下方法:

    Begin
    update_employee_salary(1.5);
    End;

请在此处阅读更多信息:

调用
过程的方法不正确。您可以使用以下方法:

    Begin
    update_employee_salary(1.5);
    End;

在这里阅读更多信息:

您也可以在SQL*PLUS和SQL Developer中这样执行它:

EXEC update_employee_salary(1.5)

您也可以在SQL*PLUS和SQL Developer中这样执行:

EXEC update_employee_salary(1.5)

您可以像以前那样使用call调用过程。无法工作的原因可能与以前未使用;关闭的sql语句有关;。此外还有一条建议:您不应该像以前那样使用oracle/plsql保留字作为表列名(id是保留字)。

您可以像以前那样使用call调用过程。无法工作的原因可能与以前未使用;关闭的sql语句有关;。此外还有一条建议:您不应该像以前那样使用oracle/plsql保留字作为表列名(id是保留字)。

您如何调用该过程?来自SQL*Plus?JDBC?ODP.NET?SQL开发人员?还有什么?你怎么称呼这个程序?来自SQL*Plus?JDBC?ODP.NET?SQL开发人员?还有别的吗?