【问题标题】:Write a PL/SQL procedure with no parameters Ins_Job that inserts new record in table JOBS编写一个不带参数 Ins_Job 的 PL/SQL 过程,在表 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 助理 - 最低工资: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 行

【问题讨论】:

  • 什么不起作用?
  • 您是否启用了输出?如果没有,请在调用该过程之前运行set serveroutput on。再想一想,你有没有调用这个过程?您发布的代码只是创建它;你应该执行它,对吧? begin insert_job; end;
  • ORA-06502:PL/SQL:数字或值错误:字符串缓冲区太小 ORA-06512:在“WKSP_ELIASHOME.INSERT_JOB1”,第 2 行 ORA-06512:在第 1 行 ORA-06512:在“SYS.DBMS_SQL”,第 1721 行 1. 开始 insert_job1;结尾;它向我显示了这个错误。
  • Dale k,它创建了程序但表中没有数据。而且当我调用它时,它向我显示了一个错误 .ORA-06502: PL/SQL: numeric or value error: string buffer too small ORA-06512: at "WKSP_ELIASHOME.INSERT_JOB1", line 2 ORA-06512: at line 1 ORA-06512:在“SYS.DBMS_SQL”,

标签: oracle plsql


【解决方案1】:

当我读到你的错误信息时: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';

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

对不起,如果我的英语不好而且我不太熟悉 PLSQL。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-14
    • 2012-01-23
    • 1970-01-01
    • 2016-07-30
    相关资源
    最近更新 更多