2009-07-09 16 views
5

Ho incontrato questo codice ... È questo Pl/Sql? Cosa pensi che sia?Questo codice è scritto in Pl/Sql e, in caso contrario, quale lingua è?

[Script 1.0] 

    script package up is 
    import native def_1; 

    procedure p(

    i_g text 
    ) 
    is 

    l_txt text; 
    begin 



     with mem_m(idx) as msg do 
     with book_aud(evt_id) as book do 
      book.upd_pkt(
      evt_nr => i__nr 
      ,ref_nr => msg.h.id 
      ,account_nr => msg.h.id 
      ,status => '1' 
     ); 
     end with; 
     end with; 

    end p; 

Sono sorpreso dall'importazione e termina con;

Non è il codice completo. È ridotta versione di esso. Essa conteneva anche elementi familiari come:

c_max constant number := 95; 
    c_VE_BA constant text := 'A07000'; 
    -- comment 

    if i_mt is null then 
    return rpad('/',16); 
    else 
    if i_id = zconst_.c_JPY then 
    l_fmt := '9999999999999999'; 
    else 
    l_fmt := '9999999999999D99'; 
    end if; 
    end if; 

case i_typ_id 
when def_typ.contr then 
l_zuonr := zfx2.c_avqt; 
when def_typ.fx then 
l_zuonr := zfx2.c_avqd; 
when def_typ.fxswap then 
l_zuonr := zfx2.c_avqd; 
when def_typ.forex then 
l_zuonr := zfx2.c_avqd; 
when def_typ.xfer then 
l_zuonr := zfx2.c_avqd; 
when def_typ.intr then 
l_zuonr := zfx2.c_avqt; 
else 
assert(false,'Meta Typ'); 
end case; 

Sembra un prolungamento del Pl/Sql. Sulla base delle risposte e delle mie ricerche, suppongo che sia Avaloq + PL/Sql. Ho contattato Avaloq, sto ancora aspettando una risposta ufficiale.

+0

Puoi collegarti alla fonte? – FerranB

+0

Questo non mi sembra PL/SQL. Le uniche cose in comune con PL/SQL che vedo qui sono "begin" – Powerlord

+0

Non riesco a collegarlo. Ho estratto ciò che ritenevo appropriato. – Aftershock

risposta

0

L'unico linguaggio a cui riesco a pensare con la sintassi "with...end with" è visuale di base. Potrebbe essere questa una forma di scripting di VB?

+0

, a meno che l'assegnazione non sia: = in Visual Basic – Aftershock

11

Sembra uno Avaloq Script, utilizzato da (ahem) banche svizzere, e mentre c'è poco su di esso online, ho trovato uno grammar che corrisponde perfettamente ai termini nei vostri campioni.

Avaloq Script, il linguaggio di script Avaloq Banking del sistema, facilita entrare logica di business specifici. La struttura dei dati che può essere accessibile tramite Avaloq Script è definita in un DDIC (Data Dictionary), rendendo superfluo conoscere la struttura di archiviazione dei dati .

1

Sono sicuro che non è PL/SQL.

So che questo non risponde direttamente alla tua domanda, ma potrei suggerire di passare alla lista here. È potrebbe essere elencato qui. Esistono diversi esempi di programmi in diversi linguaggi di programmazione. Potrebbe essere difficile identificare al 100% la lingua a meno che qualcuno non lo riconosca e trovi una "impronta digitale" per dimostrare la lingua ... Hai altri esempi da pubblicare?

http://www.ntecs.de/old-hp/uu9r/lang/html/lang.en.html

non credo che sia un linguaggio funzionale. Sapere questo potrebbe aiutare a restringere la tua ricerca.

+0

Avaloq Script non è in tale elenco :) – crb

+0

Non ho creato l'elenco. Sto solo suggerendo un metodo per identificare la lingua. –

6

sì, è scritto avaloq. è una sorta di pre-compilatore pl/sql, dovresti essere in grado di trovare un pacchetto chiamato s # su dove risiede il codice pl/sql reale.

5

È sicuramente Avaloq Script. Lo snippet di codice è un pacchetto di script che il compilatore Avaloq compila in PL/SQL. Il punto di Avaloq Script è di non consentire l'accesso diretto al database e di rendere il customizer del prodotto Avaloq invece di utilizzare l'API Avaloq. L'API è il linguaggio di script Avaloq e tutta una serie di altri metodi, come l'impostazione di tabelle di regole da caricare o una sintassi speciale per definire moduli, report, flussi di lavoro ecc. Consentendo spesso frammenti di script Avaloq all'interno di quell'altro tipo di fonti.

Lo script Avaloq ha molti elementi PL/SQL ma è possibile trovare anche alcuni concetti di linguaggio VB. Ecco alcuni commenti nel codice per dare un'idea del significato del codice.

[Script 1.0]      -- Have not seen other than 1.0 version 

script package up is    -- The PL/SQL package name is going to be s#up 
import native def_1;    -- import native means a PL/SQL package named 
            -- def_1 can be used, without native it is 
            -- another Avaloq script package 

procedure p(     -- declares a procedure with the name "p" 

i_g text       -- input variable i_g defined text. 
            -- in PL/SQL this becomes a VARCHAR2 
) 
is 

l_txt text;      -- local variable VARCHAR2(4000) in PL/SQL 
begin 



    with mem_m(idx) as msg do  -- mem_m is a DDIC (Data Dictionary) 
            -- It actually is a kind of "class" with 
            -- fields and methods 
            -- "with" is like in VB to avoid writing 
            -- mem_m(idx) all the time e.g. mem_m(idx).h.id 
    with book_aud(evt_id) as book do -- book_aud is another DDIC that it is not 
             -- prefixed with mem implies this is not a 
             -- in memory structure but direct access 
             -- to a Oracle table book_aud with index 
             -- evt_id which looks undefined to me and 
             -- should bring a compiler error 
     book.upd_pkt(     -- method call in the book_aud DDIC 
     evt_nr => i__nr     -- like in PL/SQL named parameters 
     ,ref_nr => msg.h.id 
     ,account_nr => msg.h.id 
     ,status => '1' 
    ); 
    end with; 
    end with; 

end p; 

Potrei anche commentare le altre frammento di codice di cui sopra, ma penso che già uscire il concetto generale. Né mem_m né book_aud è un DDIC conosciuto nella versione di Avaloq con cui sto lavorando, mi chiedo da dove l'abbiate preso. Dal momento che il tuo post ha molti anni suppongo che questa sia una versione molto vecchia di Avaloq.

Problemi correlati