Sql 表格6i中的光标
我正在写表格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引擎是“旧的”
大小写表达式。但是代码没有编译
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表格才能处理这个案子。