表格 6i 中的光标

发布于 2024-09-18 12:10:52 字数 128 浏览 9 评论 0原文

我正在研究 Forms 6i。我想在游标中使用 case 表达式。但代码无法编译。

Forms 6i 不支持光标中的 case 表达式吗?还有其他方法可以在 Forms 中编写 case 表达式吗?

I am working on Forms 6i. I want to use a case expression in a cursor. But the code does not compile.

Does Forms 6i not support the case expression in cursor? Is there any other method to write case expression in Forms?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

国际总奸 2024-09-25 12:10:52

在我能想到的几乎所有情况下,您都可以使用嵌套的解码而不是情况。

另一种可能

 select case when a=1 then 'foo'
             when b>2 then 'bar'
             else 'foobar' end
   from xyz;

更优雅的

 select decode(a,1,        'foo',
        decode(sign(b-2),1,'bar',
                           'foobar')) from xyz;

可能性是创建数据库视图并在表单中使用它,因此表单 6i 永远不会看到 case

In almost all cases I can think of, you can use nested decodes instead of case.

Instead of

 select case when a=1 then 'foo'
             when b>2 then 'bar'
             else 'foobar' end
   from xyz;

you can write

 select decode(a,1,        'foo',
        decode(sign(b-2),1,'bar',
                           'foobar')) from xyz;

The other, probably more elegant possibility, is to create a database view and use it in forms, so forms 6i never sees the case.

段念尘 2024-09-25 12:10:52

这是因为 Forms 6i 中使用的 pl/sql 引擎很“旧”,并且在开发时不知道 CASE 语句。 (我记得,服务器端 pl/sql 仅在 Oracle 9i 中引入了 CASE 语句)

我没有表单生成器 9i 的副本,因此无法评论该版本,但 CASE< /code> 语句在 Forms 10g 及更高版本中可用。

It's because the pl/sql engine used in Forms 6i is "old" and wasn't aware of CASE statements when it was developed. (As I recall, server side pl/sql only introduced CASE statements at Oracle 9i)

I don't have a copy of form builder 9i so can't comment on that version but CASE statements are available in Forms 10g and above.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文