Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 表格6i中的光标_Sql_Oracle_Oracleforms - Fatal编程技术网

Sql 表格6i中的光标

Sql 表格6i中的光标,sql,oracle,oracleforms,Sql,Oracle,Oracleforms,我正在写表格6i。我想在游标中使用大小写表达式。但是代码没有编译 Forms 6i是否不支持游标中的大小写表达式?有没有其他方法可以在表单中编写case表达式?这是因为表单6i中使用的pl/sql引擎是“旧”的,并且在开发时不知道case语句。(我记得,服务器端pl/sql仅在Oracle 9i中引入了CASE语句) 我没有form builder 9i的副本,因此无法对该版本发表评论,但CASE语句在Forms 10g及以上版本中可用 这是因为Forms 6i中使用的pl/sql引擎是“旧的”

我正在写表格6i。我想在游标中使用
大小写
表达式。但是代码没有编译


Forms 6i是否不支持游标中的大小写表达式?有没有其他方法可以在表单中编写case表达式?

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


我没有form builder 9i的副本,因此无法对该版本发表评论,但
CASE
语句在Forms 10g及以上版本中可用

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


我没有form builder 9i的副本,因此无法对该版本发表评论,但
CASE
语句在Forms 10g及以上版本中可用

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

而不是

 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;

另一种可能更优雅的方法是创建数据库视图并在表单中使用它,这样forms 6i就不会看到
案例
在我能想到的几乎所有案例中,您都可以使用嵌套的
解码
而不是
案例

而不是

 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;

另一种可能更优雅的方法是创建数据库视图并在表单中使用它,因此,forms 6i从未见过
案例

+1我应该在我的回复中包含一个像您这样的解决方案,而不是仅仅解释它为什么不起作用。+1我应该在我的回复中包含一个像您这样的解决方案,而不是仅仅解释它为什么不起作用。案例在Oracle 8i中可用,但在PL/SQL程序中(直接)不可用。但是表单PL/SQL远远落后于服务器PL/SQL。我认为只有10gR2表单可以管理CASE.CASE在Oracle 8i中可用,但在PL/SQL程序中不能(直接)使用。但是表单PL/SQL远远落后于服务器PL/SQL。我认为只有10gR2表格才能处理这个案子。