2009-07-09 16 views
5

He encontrado este código ... ¿Esto es Pl/Sql? ¿Qué piensas que es?¿Este código está escrito en Pl/Sql y, de no ser así, qué idioma es?

[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; 

Estoy sorprendido por la importación y el final con;

No es el código completo. Es una versión reducida de esto. También contenía elementos familiares como:

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; 

Se ve como una extensión de PL/SQL. Según las respuestas y mi propia investigación, supongo que es Avaloq + PL/Sql. Me puse en contacto con Avaloq, todavía estoy esperando una respuesta oficial.

+0

¿Se puede vincular a la fuente? – FerranB

+0

Esto no se parece a PL/SQL. Lo único en común con PL/SQL que veo aquí es el "comenzar" – Powerlord

+0

No puedo vincularlo. Extraje lo que consideré apropiado. – Aftershock

Respuesta

0

El único lenguaje que puedo pensar de improviso que tiene la sintaxis "with...end with" es visual básico. ¿Podría ser esto una forma de scripting de VB?

+0

no es probable, a menos que la asignación sea: = en Visual Basic – Aftershock

11

Parece Avaloq Script, utilizado por (ahem) bancos suizos, y si bien hay muy poco acerca de él en línea, encontré un grammar que coincide perfectamente con los términos de las muestras.

Avaloq escritura, lenguaje de script de la Banca del Sistema Avaloq, facilita entrar en la lógica de negocio específico. La estructura de los datos que pueden ser a los que se accede a través de Avaloq Script es definida en un DDIC (Diccionario de datos), por lo que es innecesario conocer la estructura de almacenamiento de datos .

1

Estoy seguro de que no es PL/SQL.

Sé que esto no responde directamente a su pregunta, pero le sugiero que vaya a la lista here. Es podría se enumeran aquí. Hay varios ejemplos de programas en diferentes lenguajes de programación. Puede ser difícil identificar 100% el idioma a menos que alguien lo reconozca y encuentre una "huella digital" para probar el idioma ... ¿Tiene más ejemplos que podría publicar?

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

no creo que es un lenguaje funcional. Sabiendo esto podría ayudar a reducir su búsqueda.

+0

Avaloq Script no está en esa lista :) – crb

+0

No creé la lista. Solo sugiero un método para identificar el idioma. –

6

sí, es una secuencia de comandos avaloq. es una especie de pre compilador pl/sql, debería poder encontrar un paquete llamado s # donde reside el código real pl/sql.

5

Definitivamente es Avaloq Script. El fragmento de código es un paquete de scripts que compila Avaloq compila en PL/SQL. El objetivo de Avaloq Script es no permitir el acceso directo a la base de datos y hacer que el personalizador del producto Avaloq use la API de Avaloq. La API es el lenguaje de script de Avaloq y una gran variedad de otras formas, como configurar tablas de reglas para cargar o sintaxis especial para definir formularios, informes, flujos de trabajo, etc., permitiendo a menudo fragmentos de script de Avaloq dentro de ese otro tipo de fuentes.

La secuencia de comandos Avaloq tiene muchos elementos PL/SQL pero también se pueden encontrar algunos conceptos de lenguaje VB. Aquí hay algunos comentarios en el código para dar una idea de lo que significa el código.

[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; 

También podría comentar sobre el otro fragmento de código anterior, pero creo que ya sacas el concepto general. Ni mem_m ni book_aud es un DDIC conocido en la versión de Avaloq con la que estoy trabajando, me pregunto de dónde lo sacaste. Como su publicación tiene muchos años, supongo que este fue un lanzamiento de Avaloq muy antiguo.

Cuestiones relacionadas