REF() 函数 returns "SQL command not properly ended"

REF() function returns "SQL command not properly ended"

我正在尝试熟悉 O/R 数据库,这让我尝试获取对象引用。

首先为特定用户列出 all_objects,然后选择了一个类型为 TABLE 的对象 (CF02),即 OBJECT_TYPE = 'TABLE'

然后我打开了 table,并且只处理了其中第一个字段 (OBJECT_ID) 为 9142055040413031761.

的行

然后我尝试获取该行的 ref()

  SELECT ref(cf) FROM rdbmgr.CF02 as cf
  WHERE OBJECT_ID = 9142055040413031761

希望得到与 Oracle 书籍中类似的结果,这是对象位置的内部编号...

如果您的 table 是从对象类型创建的,则可以使用 ref() 函数。

REF takes as its argument a correlation variable (table alias) associated with a row of an object table or an object view.

例如你有一个对象类型:

create or replace TYPE t_pos AS OBJECT 
( 
  x number,
  y number
)
/

你可以创建一个 table

 CREATE TABLE position OF t_pos ;

-- insert some data for test
insert into position values (1,2);

所以你有一个 table position 现在你可以 select 和 ref 函数

select ref(t) from  position  t;

结果:

REF(E)
--------------------------------------------------------------------------------
0000280209587CADBD96F74009BBF01C1596D74E72E7986EC7F3AF40B4A264DA1BE6FE27D30040B2
790000

如果您 table 被创建为 create table position(x number, y number) 你不能在 select

中使用 ref 函数

查看文档 here