Announcement

Collapse
No announcement yet.

Subquery im INSERT INTO

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Subquery im INSERT INTO

    Hallo,

    ich habe ein Problem eine Subquery in einem INSERT INTO-Statement unterzubringen. Mein Ansatz ist hier in verkürzter Form zu sehen. (Das select-Statement läuft für sich genommen einwandfrei durch)

    Code:
    INSERT INTO W_CACS_ENTRY
    (
        location_code
        ,case_num
        ,billing_account_id
    )
    
    select 
         a.location_code
        ,a.case_num
        ,billing.billing_account_id    
    
        from 
        (
                select  
                max(billing_account_id) as billing_account_id
                from 
                (
                    select  /*+ parallel ( a 4)*/ 
                    account_no
                    ,external_id  
                ) case,
                w_billing_accounts  bill
                where 
                case.account_no = bill.account_no
           ) billing
           ,
           w_CO_CASE_HIST a
            where -bedingungen-
    ;
    Als Fehler bekomme ich ORA-Seperator S223:
    (S223) Expecting: statement_terminator BEGIN CASE DECLARE END IDENTIFIER IF LOOP


    Kann man subquerys nicht in einem INSERT INTO verwenden?
    Weiß jemand eine andere Möglichkeit?

    Danke und Gruß
    bang

  • #2
    Im inneren SELECT
    (
    select /*+ parallel ( a 4)*/
    account_no
    ,external_id
    )
    scheint die FROM clause zu fehlen ?
    Evtl. könnte es auch an der Spalte mit dem Namen CASE liegen, da ja CASE auch ein Schlüsselwort ist...

    Comment


    • #3
      ups. mein fehler. natürlich ist da auch eine kurze FROM-Klausel drin. Danke für den Hinweis

      Habe jetzt das innere select-statement in eine View ausgelagert
      Code:
           
      create or replace view vw_bill_acc_id_tmp
      as  
             select  
                  max(billing_account_id) as billing_account_id
                  from 
                  (
                      select  /*+ parallel ( a 4)*/ 
                      account_no
                      ,external_id  
                      from blablubb
                  ) case,
                  w_billing_accounts  bill
                  where 
                  case.account_no = bill.account_no
      und jetzt scheints zu funktionieren
      Anscheinend gibts bei INSERT INTO wirklich eine beschränkung bei Subquerys

      lol, ne hattest recht. Lag nur an dem CASE
      Das hätte ich wohl nie gesehen*G
      danke

      Comment

      Working...
      X