【问题标题】:Inserting value for SQR Report correctly正确插入 SQR 报告的值
【发布时间】:2021-03-20 01:37:48
【问题描述】:

我需要帮助来获取此插入语句中包含的工作代码 DESCR。

我不断收到此错误SQL Status = 1400, SQL Error = ORA-01400: cannot insert NULL into ("SYSADM"."PS_J_ACTION_COUNTS"."JOBCODE_DESCR")

begin-SELECT Loops=1
E.BUSINESS_UNIT
E.JOBCODE 
EA.DESCR
E.EFFDT
E.EFFSEQ

  do Insert-XferOut

FROM  PS_JOB E,
PS_JOBCODE_TBL EA,
      PS_PERSON PP3
WHERE E.EMPLID    = &B.EmplID
  AND E.EMPLID    = PP3.EMPLID
  AND E.JOBCODE = EA.JOBCODE
  AND E.PER_ORG = 'EMP'
  AND E.EMPL_RCD = &B.EMPL_RCD
  AND (E.EFFDT < &B.EffDt OR E.EFFDT = &B.EffDt AND E.EFFSEQ < &B.EffSeq)
ORDER BY E.EFFDT DESC, E.EFFSEQ DESC

end-SELECT
end-procedure

begin-procedure Insert-XferOut


let $sql-statement = 'MP2_JOB.SQR,Insert-XferOut,Insert,PS_J_ACTION_COUNTS'

display 'Insert-XferOut-&E.BUSINESS_UNIT: ' noline
display &E.BUSINESS_UNIT

begin-SQL On-Error=SQL-Error

INSERT INTO PS_J_ACTION_COUNTS(JOBCODE,JOBCODE_DESCR,BUSINESS_UNIT,BEGINS,HIRES,RETIRES,XFERSIN,XFERSOUT,TERMINATIONS,ENDS) VALUES(&E.JOBCODE,&EA.DESCR,&E.BUSINESS_UNIT,0,0,0,0,1,0,0)

end-SQL

【问题讨论】:

    标签: sql oracle peoplesoft sqr


    【解决方案1】:

    执行查询的第一部分并检查 EA.DESCR 是否为空。

    我认为EA.DESCR 正在返回您试图插入JOBCODE_DESCR 列的空值。在这种情况下,您需要有一个不是 null 的值,或者您需要在 JOBCODE_DESCR 列中允许 null。

    【讨论】:

    • 如果这个答案帮助您解决了您的问题,请点击绿色检查接受它。
    【解决方案2】:

    首先,我要确认记录在您的 PS_JOBCODE_TBL 表中没有空值。 (除非您已自定义此表,否则该字段通常在 AppDesigner 中定义为“必填”,因此不应包含空值。)

    SELECT *
    FROM PS_JOBCODE_TBL
    WHERE DESCR IS NULL
    

    如果您在源表上有空值,但仍想将记录插入 PS_J_ACTION_COUNTS 表中,您可以将字段包装在 NVL 函数中并提供默认值(即空格)以在空值的情况下使用.

    begin-SELECT Loops=1
    E.BUSINESS_UNIT
    NVL(E.JOBCODE, ' ') &EA.DESCR
    EA.DESCR
    E.EFFDT
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-04-09
      • 1970-01-01
      • 1970-01-01
      • 2015-11-02
      • 1970-01-01
      • 2018-02-01
      • 1970-01-01
      相关资源
      最近更新 更多