2016-10-25 20 views
-1

このスクリプトからは、 "右括弧がありません"というエラーが表示されません。LIKE内のSELECTステートメント

INSERT INTO RECHARGES_TEMP_1 
SELECT INT_SUBSCRIBER_ID,TRANS_DATE,FACE_VALUE,RECHARGE_COMMENT 
FROM TDW.RECHG_HIST_DETAILS 
WHERE BALANCE_ID=1 
AND (RECHARGE_COMMENT LIKE '%785031357%' (SELECT d.st,T.INT_SUBSCRIBER_ID SUB,'%''' 
              FROM TEMP_01 t, (select 'OR RECHARGE_COMMENT LIKE ''%' st from dual) d 
              WHERE T.AREA LIKE 'Jaffna')) 
AND TRANS_DATE BETWEEN 20161018 AND 20161019 

内側のSELECT文の結果:

OR RECHARGE_COMMENT LIKE '% 785049513 %' 
OR RECHARGE_COMMENT LIKE '% 785049514 %' 
OR RECHARGE_COMMENT LIKE '% 785049515 %' 
OR RECHARGE_COMMENT LIKE '% 785049555 %' 
OR RECHARGE_COMMENT LIKE '% 785049556 %' 
OR RECHARGE_COMMENT LIKE '% 785049557 %' 
OR RECHARGE_COMMENT LIKE '% 785049558 %' 
OR RECHARGE_COMMENT LIKE '% 785049559 %' 
OR RECHARGE_COMMENT LIKE '% 785049562 %' 
OR RECHARGE_COMMENT LIKE '% 785049563 %' 
OR RECHARGE_COMMENT LIKE '% 785049566 %' 
OR RECHARGE_COMMENT LIKE '% 785049577 %' 
+2

を囲む空間に注意する必要があります日付と整数でない

  • です。あなたは何をしようとしているのですか?不足していますか? – jarlh

  • +2

    そのようなSQL条件を追加することはできません。 –

    +0

    SQL(Oracle)の[Dynamic 'LIKE'ステートメントの重複の可能性があります(http://stackoverflow.com/questions/8327616/dynamic -like-statement-in-sql-oracle) – Michael

    答えて

    2

    私はあなたがやろうとしているか全くわからないが、あなたはこのような何かしたいかのように私を思わ:

    INSERT INTO recharges_temp_1 
    SELECT int_subscriber_id,trans_date,face_value,recharge_comment 
    FROM tdw.rechg_hist_details rhd 
    WHERE balance_id=1 
        AND exists (select 1 
           from TEMP_01 t 
           where t.area = 'Jaffna' 
           and instr(rhd.recharge_comment, t.int_subscriber_id) > 0) 
        AND trans_date BETWEEN 20161018 AND 20161019 
    
    +0

    int_subscriber_idは空白で囲む必要があります。 –

    +0

    @DuduMarkovitz:元の文の連結ではスペースが追加されないため、そうは思いません。 –

    +0

    'OR RECHARGE_COMMENT LIKE '%785049513%' –

    1
    INSERT INTO RECHARGES_TEMP_1 
    SELECT  INT_SUBSCRIBER_ID,TRANS_DATE,FACE_VALUE,RECHARGE_COMMENT 
    FROM  TDW.RECHG_HIST_DETAILS 
    WHERE  BALANCE_ID=1 
         AND (RECHARGE_COMMENT LIKE '%785031357%' 
    
          or exists 
           (
            SELECT null 
            FROM  TEMP_01 t        
            WHERE  T.AREA = 'Jaffna' 
             and RECHARGE_COMMENT like '%' || trim (T.INT_SUBSCRIBER_ID) || '%' 
           ) 
          ) 
    
         AND TRANS_DATE BETWEEN date '2016-10-18' AND date '2016-10-19' 
    ; 
    

    Ps

    • 私はTRANS_DATEを推測しているあなたは、LIKEは非常に奇妙であるINT_SUBSCRIBER_ID
    関連する問題