SQL 脚本,如何执行以下脚本?

Posted

技术标签:

【中文标题】SQL 脚本,如何执行以下脚本?【英文标题】:SQL script, how can i execute the following script? 【发布时间】:2018-01-25 11:06:03 【问题描述】:

我必须执行这个脚本。问题在于 SQL Developer 我无法运行它,因为某些运算符无法识别。

P_jobgroup_id :
'GDWH2MYGDWH-GDWH2MYGDWH'           CORE load finished
'GDWH2MYGDWH-GDWH2MYGDWH_IF'        IF finished
'GDWH2MYGDWH-GDWH2MYGDWH_INIT'  IF or CORE started

declare
 p_context_code          varchar2(100) := 'GDWH2MYGDWH';
 v_res                   varchar2(100);
begin
v_res := OJC.jc_master.main 
     (
      p_batch_number => NULL,
      p_jobgroup_id => 'GDWH2MYGDWH-GDWH2MYGDWH'),
      p_parameters_string => 'GDWH2MYGDWH.PRM_REPORTING_DATE='||to_char(sysdate,'yyyymmddhh24miss',
      p_context_code =>p_context_code
     );
end;
/

从命令的第 1 行开始的错误:P_jobgroup_id:错误报告: 未知命令

从命令的第 2 行开始出错:'GDWH2MYGDWH-GDWH2MYGDWH' 核心加载完成错误报告:未知命令 ORA-06550:第 8 行, 第 50 列:PLS-00103:在期待其中之一时遇到符号“,” 以下:

。 ( * % & = - + ; at in 是 mod 余数不是 rem

【问题讨论】:

declare前面的部分应该怎么做? 这些是与发布状态相关的声明 (gdwh2mygdwh),因此如果接口启动 (IF),它应该将表数据编辑为 GDWH2MYGDWH-GDWH2MYGDWH_INIT。主要问题是如何从声明及以下运行。谢谢 在 DECLARE 之前评论该部分;恐怕在这种情况下它是无效的。 DECLARE 之前的整个部分在 PL/SQL 中是无效的——你希望它做什么?你在manual 哪里找到了那个语法? 好的,但是声明后如何运行代码?因为我可以尝试删除那部分代码,看看会发生什么......但是仍然有很多其他语法错误,例如=>。 【参考方案1】:

脚本的第一部分不是有效的 PLSQL 代码。 注释或删除它会使脚本运行,一旦修复了几个语法错误。

/*
    P_jobgroup_id :
    'GDWH2MYGDWH-GDWH2MYGDWH'           CORE load finished
    'GDWH2MYGDWH-GDWH2MYGDWH_IF'        IF finished
    'GDWH2MYGDWH-GDWH2MYGDWH_INIT'  IF or CORE started
 */
DECLARE
    p_context_code                          VARCHAR2(100) := 'GDWH2MYGDWH';
    v_res                                   VARCHAR2(100);
BEGIN
    v_res := OJC.jc_master.main
        (
         p_batch_number         => NULL,
         p_jobgroup_id          => 'GDWH2MYGDWH-GDWH2MYGDWH',
         p_parameters_string    => 'GDWH2MYGDWH.PRM_REPORTING_DATE=' || TO_CHAR(SYSDATE, 'yyyymmddhh24miss'),
         p_context_code         => p_context_code
        );
END;
/

【讨论】:

以上是关于SQL 脚本,如何执行以下脚本?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 sql server 中查看执行脚本的历史记录及其执行时间和计数?

执行从参数字符串连接的脚本时如何防止 SQL 注入?

如何使用sqlcmd在批处理脚本中执行SQL?

如何从 SQL 脚本执行 AWS S3 到 Redshift Copy 命令?

如何让mysql执行脚本

在deiphi中如何使用sql脚本