Warm tip: This article is reproduced from serverfault.com, please click

oracle-编写不带参数Ins_Job的PL / SQL过程,该过程将新记录插入表JOBS中

(oracle - Write a PL/SQL procedure with no parameters Ins_Job that inserts new record in table JOBS)

发布于 2020-11-30 06:31:22
CREATE OR REPLACE PROCEDURE Insert_Job AS
    v_job_id VARCHAR2(10) := 'HR_Assistant';
    v_job_title VARCHAR2(35) := 'HRessourcesAssistant';
    v_Min_Salary NUMBER(22):= 400;
    v_max_salary NUMBER (22):= 5000;
  
BEGIN
    INSERT INTO OEHR_JOBS (JOB_ID, JOB_TITLE,MIN_SALARY,MAX_SALARY)
    VALUES (v_job_id, v_job_title, v_Min_Salary, v_max_salary);
    dbms_output.put_line('Insertion OK');
End;

编写不带参数Insert_Job的PL / SQL过程,该参数在表JOBS中插入新记录:-职位ID:助手-职位名称:HRessources Assistant-最低工资:400-最高工资:5000该过程应向用户打印一条消息告知他插入状态(成功/错误)。在两种情况下都调用该过程并截取输出的屏幕快照。

这是我尝试的方法,对你没有任何帮助吗?它创建了过程,但表中没有数据,当我调用它时,它也显示了一个错误。我正在使用APEX ORACLE,以下是错误消息

ORA-06550:第2行,第1列:PLS-00905:对象WKSP_ELIASHOME.INSERT_JOB无效ORA-06512:在“ SYS.WWV_DBMS_SQL_APEX_200200”,第626行ORA-06550:第2行,第1列:PL / SQL:语句被忽略ORA -06512:在“ SYS.DBMS_SYS_SQL”行1658中ORA-06512:在“ SYS.WWV_DBMS_SQL_APEX_200200”行612 ORA-06512:在“ APEX_200200.WWV_FLOW_DYNAMIC_EXEC”中,行1749

Questioner
New Coder
Viewed
0
Fauzi88 2020-11-30 16:34:12

当我阅读你的错误消息时:numeric or value error: character string buffer too small 这意味着你的长度太小。在你的代码中:

 v_job_id VARCHAR2(10) := 'HR_Assistant';

这是因为长度比'HR_Assistant'10

尝试将长度更改v_job_id为:

v_job_id VARCHAR2(12) := 'HR_Assistant';

或者,你可以将某些字符删除为:

v_job_id VARCHAR2(10) := 'Assistant';

或者,也许你必须从JOB_ID表中的列检查第一个长度OEHR_JOBS

抱歉,如果我的英语不好,并且我不太熟悉PLSQL。