将 Oracle 数据库表的 ROWID 存储为字符数组

Storing Oracle DB table's ROWID as a character array

本文关键字:存储 字符 数组 ROWID Oracle 数据库      更新时间:2023-10-16

我想从Oracle DB中检索表的ROWID并作为字符数组存储在内存中以供以后使用。例如,我运行以下查询:

SELECT ROWID, MARKS FROM MTB WHERE EID='123';

然后使用 Pro*C,我想将此 ROWID 存储为字符数组 rrr 以供以后使用:

UPDATE MTB SET MARKS = 80 WHERE ROWID='<rrr>'

请帮助并指出 Pro*C 用法的适当文档,以将 ROWID 转换为字符串数组。

您可以使用

ROWIDTOCHAR 和 CHARTOROWID 函数:

SELECT ROWIDTOCHAR(ROWID), MARKS INTO :rrr, :marks FROM MTB WHERE EID='123';

然后

UPDATE MTB SET MARKS = 80 WHERE ROWID=CHARTOROWID(:rrr);