2020/02/15

Tiptop 4gl中如何调用Oracle存储过程

最近想用Tiptop程序直接调用Oracle的存储过程,从网上查资料发现了识途老驴的博客,测试后发现并不奏效,可能是版本不同吧,无法考证。

于是又查看了Genero的官方文档,曰:
To execute the stored procedure, you must include the procedure in an anonymous PL/SQL block with BEGIN and END keywords.
于是将4gl代码改造如下,即可执行。
     BEGIN WORK
    #PREPARE id1 FROM "CALL .pro_F001(?,?)"    #识途老驴的方法
     PREPARE id1 FROM "begin pro_F001(?,?); end;" #官方方法
     EXECUTE id1 USING l_str1 IN, l_str2 OUT   #传入所需参数
     PREPARE id2 FROM "begin pro_F002(); end;" #无需参数者
     EXECUTE id2
     COMMIT WORK
如果有参数同时具备传入/传出的参数,则为INOUT。

1 条评论:

匿名 说...

在4gl中调用Oracle的自定义函数直接这样写:
SELECT fn_getprice(l_var) INTO l_str FROM dual