【问题标题】:How to add a rowid to a resultset of an oracle stored procedure in java如何在java中将rowid添加到oracle存储过程的结果集中
【发布时间】:2013-06-10 14:34:36
【问题描述】:

如果我使用 Oracle 在 .Net 中开发应用程序,则 OracleCommand 类具有属性 AddRowId=true。此语句在结果集中包含一个 RowId 列。

但我在 JDBC 的 OracleStatement 中找不到类似的东西。有人可以帮我吗?我真的需要在不修改存储过程的情况下在存储过程的结果集中返回 rowid。

【问题讨论】:

    标签: java .net oracle jdbc oracleclient


    【解决方案1】:

    将“ROWID”伪列添加到您的查询中以获取行 ID。

    例如:

    SELECT name, ROWID
    FROM People
    

    【讨论】:

    • 正如我所说,我无法编辑查询。此外,这些不是正常的选择语句。我们谈论的是存储过程。
    【解决方案2】:

    如果您无法编辑存储过程,则无法为 Java 或 .Net 程序提供存储过程返回的行的 ROWID。 ROWID 可通过SELECT 语句直接获得。

    【讨论】:

    • @Faisal 请使用 addrowid 显示该代码。根据docs,“此 ROWID 列已隐藏,应用程序无法访问。要访问表的 ROWID,必须在不使用此属性的情况下将 ROWID 显式添加到选择列表中。”跨度>
    • @Faisal 我想你会发现 AddRowId 没有做你认为的那样。
    • @GriffeyDog docs.oracle.com/cd/B19306_01/win.102/b14307/… 表示它会将 ROWID 添加为选择列表的一部分
    • @Faisal 你试过了吗?请显示您说的代码有效(仅使用“AddRowid = true”标志)。
    • @Faisal 仔细阅读文档。就像 tbone 所说,它有这样的:“此 ROWID 列是隐藏的,应用程序无法访问。要访问表的 ROWID,ROWID 必须显式添加到选择列表中使用此属性。”
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-01-17
    • 2018-03-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-04
    • 1970-01-01
    相关资源
    最近更新 更多