Starry_lin 2024-07-25 16:05 采纳率: 20%
浏览 5

存储过程执行提示PLS-00103: 出现符号 "V_BEGIN_TIME"在需要下列之一时:language

问题遇到的现象和发生背景

DBeaver 保存存储过程时提示报错

遇到的现象和发生背景,请写出第一个错误信息

PLS-00103: 出现符号 "V_BEGIN_TIME"在需要下列之一时:

language

用代码块功能插入代码,请勿粘贴截图。 不用代码块回答率下降 50%

CREATE OR REPLACE PACKAGE C1DM.DM_SJZX IS

PROCEDURE C1DM_SJZX_BOM_FJZ (p_year              IN VARCHAR2,
                               p_period           IN VARCHAR2,
                               p_entity_codes     IN VARCHAR2) IS
v_begin_time VARCHAR2(19);
v_end_time   VARCHAR2(19);
v_error_id   VARCHAR2(255);
v_data_count NUMBER DEFAULT 0;
v_error_info VARCHAR2(4000);
BEGIN
    --获取开始时间
    SELECT to_char(SYSDATE, 'yyyy-mm-dd hh24:mi:ss')
      INTO v_begin_time
      FROM  dual;
    
     --删除数据
     DELETE FROM C1DM.DM_SJZX_BOM_FJZ dsbf 
     WHERE dsbf.YEAR = p_year
             AND dsbf.YEAR = p_year
            AND dsbf.PERIOD = p_period
            AND dsbf.ENTITY_CODE = p_entity_codes;
    COMMIT ;

    --插入数据
    INSERT INTO C1DM.DM_SJZX_BOM_FJZ
        ("YEAR",
        PERIOD,
        ENTITY_CODE,
        MODELNAME,
        PRICE,
        RATE_D,
        PRICE_CNY,
        UPDATE_TIME)
         SELECT 
        osbf."YEAR" AS "YEAR", 
        osbf.PERIOD AS PERIOD, 
        osbf.FACTORY AS ENTITY_CODE,
        osbf.MODELNAME AS MODELNAME,
        osbf.PRICE AS PRICE,
        osbf.RATE_D AS RATE_D, 
        ROUND(osbf.PRICE * osbf.RATE_D,2) AS PRICE_CNY ,
        to_char(SYSDATE, 'yyyy-mm-dd hh24:mi:ss') AS UPDATE_TIME
        FROM ODS_SJZX.ODS_SJZX_BOM_FJZ osbf 
        WHERE osbf."YEAR" = p_year
                AND osbf.PERIOD = p_period
                AND osbf.FACTORY = p_entity_codes;
    COMMIT;

    --获取结束时间
    SELECT to_char(SYSDATE, 'yyyy-mm-dd hh24:mi:ss')
      INTO v_end_time
      FROM dual;
     
EXCEPTION
    WHEN OTHERS THEN 
        dbms_output.put_line('');

END C1DM_SJZX_BOM_FJZ;

END DM_SJZX;

运行结果及详细报错内容

img

我的解答思路和尝试过的方法,不写自己思路的,回答率下降 60%
我想要达到的结果,如果你需要快速回答,请尝试 “付费悬赏”
  • 写回答

2条回答 默认 最新

  • 专家-赤兔[在线] 全栈领域优质创作者 2024-07-25 16:05
    关注

    引自免费微信小程序:皆我百晓生

    从你给出的错误信息来看,问题似乎出在存储过程的声明部分。错误提示“PLS-00103”指出在代码中出现了不应该存在的符号“V_BEGIN_TIME”。这个问题可能是由于语法错误或者拼写错误导致的。根据你提供的代码,我注意到在声明部分可能存在一些格式问题。

    首先,你的代码中的包声明部分似乎有一些格式问题。在CREATE OR REPLACE PACKAGE C1DM.DM_SJZX IS后面应该直接开始定义过程,而不是插入图片描述的内容。请确保你的代码格式正确。

    其次,关于符号“V_BEGIN_TIME”,从你提供的错误信息来看,它似乎被错误地识别为一个独立的符号。这可能是由于在编写代码时不小心添加了额外的空格或特殊字符导致的。请检查你的代码中是否存在多余的空格或特殊字符。

    针对这些问题,你可以尝试以下步骤来解决:

    1. 确保代码的格式正确,去掉图片描述的内容,直接开始定义过程。
    2. 检查代码中是否存在多余的空格或特殊字符,特别是在变量声明部分。
    3. 确保所有的变量和过程都已正确声明,并且没有拼写错误。

    根据你提供的代码,我为你整理了一个修正后的版本:

    CREATE OR REPLACE PACKAGE C1DM.DM_SJZX IS 
        PROCEDURE C1DM_SJZX_BOM_FJZ (p_year IN VARCHAR2, p_period IN VARCHAR2, p_entity_codes IN VARCHAR2);
    END DM_SJZX;
    /
    
    CREATE OR REPLACE PROCEDURE C1DM.DM_SJZX_BOM_FJZ (p_year VARCHAR2, p_period VARCHAR2, p_entity_codes VARCHAR2) IS
        v_begin_time VARCHAR2(19);
        v_end_time VARCHAR2(19);
        v_error_id VARCHAR2(255);
        v_data_count NUMBER DEFAULT 0;
        v_error_info VARCHAR2(4000);
    BEGIN
        -- 获取开始时间
        SELECT to_char(SYSDATE, 'yyyy-mm-dd hh24:mi:ss') INTO v_begin_time FROM dual;
         
        -- 删除数据
        DELETE FROM C1DM.DM_SJZX_BOM_FJZ dsbf WHERE dsbf.YEAR = p_year AND dsbf.PERIOD = p_period AND dsbf.ENTITY_CODE = p_entity_codes;
        COMMIT;
         
        -- 插入数据
        INSERT INTO C1DM.DM_SJZX_BOM_FJZ ("YEAR", PERIOD, ENTITY_CODE, MODELNAME, PRICE, RATE_D, PRICE_CNY, UPDATE_TIME) 
            SELECT osbf."YEAR" AS "YEAR", osbf.PERIOD AS PERIOD, osbf.FACTORY AS ENTITY_CODE, osbf.MODELNAME AS MODELNAME, osbf.PRICE AS PRICE, osbf.RATE_D AS RATE_D, ROUND(osbf.PRICE * osbf.RATE_D, 2) AS PRICE_CNY, to_char(SYSDATE, 'yyyy-mm-dd hh24:mi:ss') AS UPDATE_TIME FROM ODS_SJZX.ODS_SJZX_BOM_FJZ osbf WHERE osbf."YEAR" = p_year AND osbf.PERIOD = p%period AND osbf.FACTORY = p%entitycodes; 提交; COMMIT; 提交结束时间 SELECT to char (SYSDATE , 'yyyy mm dd hh24 : mi : ss') INTO v end time FROM dual WHEN OTHERS THEN dbms output put line v error info END C1DM SJZX BOM FJZ END DM SJZX 当你遇到此类问题时请仔细检查代码中的拼写错误和格式问题以确保代码的正确性然后重新尝试执行存储过程代码中的问题应该能够得到解决如果你还有其他问题或需要进一步的帮助请随时向我提问我会尽力帮助你解决
    
    评论 编辑记录

报告相同问题?

问题事件

  • 创建了问题 7月25日

悬赏问题

  • ¥15 有人会SIRIUS 5.8.0这个软件吗
  • ¥30 comsol仿真等离激元
  • ¥15 静电纺丝煅烧后如何得到柔性纤维
  • ¥15 (标签-react native|关键词-镜像源)
  • ¥100 照片生成3D人脸视频
  • ¥15 伪装视频时长问题修改MP4的时长问题,
  • ¥15 JETSON NANO
  • ¥15 VS开发qt时如何在paintgl函数中用pushbutton控制切换纹理
  • ¥20 关于 openpyxl 处理excel文件地问题
  • ¥15 MS中不知道高分子的构型怎么构建模型