2016-08-02 11 views
-2

Ich möchte eine temporäre Tabelle erstellen.WITH Klausel - temporäre Tabelle zu erstellen

select * from TFW_ARCHIVETRANSACTION 
    where TYPE = 'openAccountTransferLifeCycle' and STATUS = 5 and 
      to_char(substr(
       TRANSACTIONDATA, 
       instr(TRANSACTIONDATA,'<ns:CredentialFunction>') + length('<ns:CredentialFunction>'), 
       instr(substr(
        TRANSACTIONDATA, 
        instr(TRANSACTIONDATA,'<ns:CredentialFunction>') + length('<ns:CredentialFunction>') 
       ), '</ns:CredentialFunction>') - 1 
     )) = 'OpenCurrentAccount'; 

Ich versuche, wie:

with openAccountTransferLifeCycle_c AS (
    select * from TFW_ARCHIVETRANSACTION 
     where TYPE = 'openAccountTransferLifeCycle'and STATUS = 5 and 
       to_char(substr(
        TRANSACTIONDATA, 
        instr(TRANSACTIONDATA,'<ns:CredentialFunction>') + length('<ns:CredentialFunction>'), 
        instr(substr(
         TRANSACTIONDATA, 
         instr(TRANSACTIONDATA,'<ns:CredentialFunction>') + length('<ns:CredentialFunction>') 
       ), '</ns:CredentialFunction>') - 1 
      )) = 'OpenCurrentAccount' 
); 

aber es funktioniert nicht.

Wo ist falsch?

+0

Bitte verwenden Sie besser Tags zu starten. Sie sollten das [tag: table] -Tag überhaupt nicht verwenden (dies steht in der Beschreibung), und [tag: temporär] bedeutet auch nicht wirklich etwas. Verwenden Sie etwas wie [tag: mysql], wenn Ihre Frage von MySQL oder ähnlich ist; Sonst haben wir keine Ahnung, wovon du sprichst. – deceze

+0

Bitte geben Sie auch an, was genau Sie erreichen möchten. Soll das zweite Snippet eine temporäre Tabelle erstellen? Was sagt Ihnen, dass es "nicht funktioniert"? Haben Sie irgendwelche Fehler ausgegeben? Wie haben Sie das Ergebnis erwartet? Wie sah es aus? – Julian

Antwort

0

was Sie versuchen, nicht temporäre Tabelle zu erstellen, die Sie versuchen CTE zu schaffen, die wie ein Blick gedacht werden kann, aber nur ist es nicht materialisiert und Umfang ist sofort ..

Sie sind fast da außer der Auswahl Teil und stellen Sie sicher, dass Sie ; hinzufügen von CTE für Ihre Frage

;with openAccountTransferLifeCycle_c 
AS 
(select * from TFW_ARCHIVETRANSACTION 
where TYPE = 'openAccountTransferLifeCycle'and STATUS = 5 
and 
to_char(substr(TRANSACTIONDATA, instr(TRANSACTIONDATA,'<ns:CredentialFunction>') + length('<ns:CredentialFunction>'), 
instr(substr(TRANSACTIONDATA, 
instr(TRANSACTIONDATA,'<ns:CredentialFunction>') + length('<ns:CredentialFunction>')), 
'</ns:CredentialFunction>') - 1)) = 'OpenCurrentAccount'); 
select * from openAccountTransferLifeCycle_c