Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/85.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 在Putty中,如何根据字符位置定位错误的位置?_Sql_Netezza - Fatal编程技术网

Sql 在Putty中,如何根据字符位置定位错误的位置?

Sql 在Putty中,如何根据字符位置定位错误的位置?,sql,netezza,Sql,Netezza,我收到以下错误,这是基于我的代码附在下面的Netezza ^ found "WHERE" (at char 543) expecting an identifier found a keyword 但是我如何在代码中找到它的位置呢?我是否需要将543除以每行的字符数 代码如下所示: DELETE FROM TDM_FEE_DISCOUNT_FACT;; ---------------------------------------------------------------------

我收到以下错误,这是基于我的代码附在下面的Netezza

 ^ found "WHERE" (at char 543) expecting an identifier found a keyword
但是我如何在代码中找到它的位置呢?我是否需要将543除以每行的字符数

代码如下所示:

DELETE FROM TDM_FEE_DISCOUNT_FACT;;

----------------------------------------------------------------------------
-- INSERT INTO TDM TABLE ---
----------------------------------------------------------------------------
INSERT INTO FEE_DISCOUNT_FACT 
(   
            FEE_DISCNT_F_DK ,
            HLTH_PLN_GRP_DK,
            HLTH_PLN_SPSR_DK,
            PLN_MBR_DK,
            COV_PRD_STRT_DT,
            COV_PRD_END_DT,
            BIL_DUE_DT,
            FEE_AMT,
            DISCNT_AMT,
            BIL_ID,
            SS_CD,
            TNT_CD,
            INSRT_DT,
            UPDT_DT,
            CREAT_RUN_CYC_EXEC_SK,
            LST_UPDT_RUN_CYC_EXEC_SK,
            REC_PRCS_TYP_CD,
            ROW_EFF_STRT_DT,
            ROW_EFF_END_DT,
            CUR_ROW_IND

)
WITH LAST_RUN_DATE(DT) AS
(
   SELECT NVL(LAST_RUN, TO_DATE('01/01/1900', 'MM/DD/YYYY'))
   FROM (
      SELECT MAX(NVL(TCT.MANIFEST_COMPLETED_TS, TO_DATE('01/01/1900', 'MM/DD/YYYY'))) LAST_RUN
      FROM :DB_XREF..TGT_CONTROL_TBL TCT
      WHERE MANIFEST = 'F_FEE_DISCOUNT'
   ) T
)
,  
--Need to modify the following section  , on line 66 of FEE_DISCOUNT_FACT
DRIVER AS 
(

    select 
     PM.HLTH_PLN_GRP_NBR||'|'||SBFD.SS_CD AS HLTH_PLN_GRP_BK
    ,PM.HLTH_PLN_GRP_NBR AS SPSR_ID
    ,PM.PLN_MBR_SK
      --COV_PRD_STRT_DT
      --COV_PRD_END_DT

    ,SBFD.BIL_DUE_DT AS BIL_DUE_DT
    ,NVL(SBFD.FEE_AMT,0) AS FEE_AMT
    ,NVL(SBFD.DISCNT_AMT,0) AS DISCNT_AMT
    ,SBFD.BIL_ID 
    ,SBFD.SS_CD
    ,SBFD.FEE_DISCNT_CREAT_DT_TM
    from MBRBOR_TGT_D4..SUBSCRIBER_BILLING_FEE_DISCOUNT SBFD
    LEFT OUTER JOIN MBRBOR_TGT_D4..PLAN_MEMBER PM 
           ON  PM.SBSCR_SK = SBFD.SBSCR_SK 
           AND PM.CUR_ROW_IND = 'Y'
           AND PM.REC_PRCS_TYP_CD <> 'D'
           AND PM.SBSCR_DPND_RLNSP_TYP_CD_SK IN (SELECT CD_MAP_SK FROM REFBOR_TGT_D4..CODEMAP
                                                                       WHERE  CONFOR_CD = 'SUB')

)

 /* IN the code, only need to join to the dimensions .. FACT DK's are the sequence */
SELECT NEXT VALUE FOR FEE_DISCOUNT_F_SEQ                    AS FEE_DISCNT_F_DK,
    NVL(HPGD.HLTH_PLN_GRP_DK,-9)                            AS HLTH_PLN_GRP_DK,
    NVL(HPGD.HLTH_PLN_SPSR_DK,-9)                           AS HLTH_PLN_SPSR_DK,
    PM.PLN_MBR_SK                                           AS PLN_MBR_DK,
    NVL(??.COV_PRD_STRT_DT,-9)                              AS COV_PRD_STRT_DT,
    NVL(??.COV_PRD_END_DT,-9)                               AS COV_PRD_END_DT,
    NVL(BIL_DUE_DT,0)                                       AS BIL_DUE_DT,
    NVL(FEE_AMT,  0)                                        AS FEE_AMT,
    NVL(DISCNT_AMT, 0)                                      AS DISCNT_AMT,
    NVL(BIL_ID,-9)                                          AS BIL_ID,
    DR.SS_CD                                                AS SS_CD,
    'BSC'                                                   AS TNT_CD,
    NOW()                                                   AS INSRT_DT,
    NOW()                                                   AS UPDT_DT,
    NVL(SBFD.CREAT_RUN_CYC_EXEC_SK,-9)                      AS CREAT_RUN_CYC_EXEC_SK,
    NVL(SBFD.LST_UPDT_RUN_CYC_EXEC_SK,-9)                   AS LST_UPDT_RUN_CYC_EXEC_SK,
    NVL(SBFD.REC_PRCS_TYP_CD,0)                             AS REC_PRCS_TYP_CD,
    NVL(SBFD.ROW_EFF_STRT_DT,0)                                 AS ROW_EFF_STRT_DT,
    NVL(SBFD.ROW_EFF_END_DT,0)                                  AS ROW_EFF_END_DT,
    NVL(SBFD.CUR_ROW_IND,0)                                 AS CUR_ROW_IND   --FEE_DISCNT_CREAT_DT_TM

FROM DRIVER DR
LEFT OUTER JOIN :DB_TGT..HEALTH_PLAN_GROUP_DIMENSION HPGD ON DR.HLTH_PLN_GRP_BK = HPGD.HLTH_PLN_GRP_BK
AND FEE_DISCNT_CREAT_DT_TM BETWEEN HPGD.ROW_EFF_STRT_DT AND HPGD.ROW_EFF_END_DT
LEFT OUTER JOIN :DB_TGT..HEALTH_PLAN_SPONSOR_DIMENSION HPSD ON DR.SPSR_ID = HPSD.SPSR_ID
AND FEE_DISCNT_CREAT_DT_TM BETWEEN HPSD.ROW_EFF_STRT_DT AND HPSD.ROW_EFF_END_DT --DONE
--some of the joins will have different conditions .  like for SS_CD it will be different
LEFT OUTER JOIN :DB_TGT..PLAN_MEMBER_DIMENSION PMD ON DR.PLN_MBR_SK = PMD.PLN_MBR_SK
AND FEE_DISCNT_CREAT_DT_TM BETWEEN PMD.ROW_EFF_STRT_DT AND PMD.ROW_EFF_END_DT


--LEFT OUTER JOIN   

LEFT OUTER JOIN 
(SELECT SBSCR.PLN_MBR_DK AS SBSCR_DK, PM.*
    FROM :DB_TGT..PLAN_MEMBER_DIMENSION PM 
    LEFT OUTER JOIN 
        (SELECT PM.PLN_MBR_DK, PM.PLN_MBR_SK, PM.SBSCR_SK, PM.CUR_ROW_IND, PM.ROW_EFF_STRT_DT, PM.ROW_EFF_END_DT FROM 
         :DB_TGT..PLAN_MEMBER_DIMENSION PM WHERE PLN_MBR_SK = SBSCR_SK) SBSCR
    ON PM.SBSCR_SK = SBSCR.SBSCR_SK AND (PM.ROW_EFF_END_DT -1) BETWEEN 
    SBSCR.ROW_EFF_STRT_DT AND SBSCR.ROW_EFF_END_DT) PMD 
    ON DR.PLN_MBR_SK = PMD.PLN_MBR_SK
    AND DR.CAPITN_ERN_FROM_DT BETWEEN PMD.ROW_EFF_STRT_DT AND PMD.ROW_EFF_END_DT

谢谢

因为如果您使用nzsql,vi是用于查询的编辑器-您可以通过在编辑器中键入0543l从开始导航543个字符-这将带您开始,然后向右移动543个步骤。这将把您带到问题所在的sql区域。

因为如果您在nzsql中,vi是用于查询的编辑器-您可以通过在编辑器中键入0543l从开始导航543个字符-这将带您开始,然后向右走543步。这会将您带到问题所在的sql领域。

您能展示您的代码以便我们进行分析吗?@FerdinandGaspar-done,thx您能展示您的代码以便我们进行分析吗?@FerdinandGaspar-done,thx