Oracle从包内的select查询中获取两个变量

Nat*_*ord 1 oracle

我修改了程序以使其更小但我真的只想运行一次选择查询.这将降低运行程序的成本.如何获得prevContectIDnextContentID不运行查询两次.这正在取代以前的程序,所以我不想改变它IN,OUT所以我不必找到它被调用的每个地方.

procedure getSeq(theContentID IN table.contentID%type,
                 prevContentID OUT table.contentID%type, 
                 nextContentID OUT table.contentID%type)
BEGIN

  SELECT myPrev into prevContentID, myNext into nextContentID
    from myTable
   where contentID=theContentID;
  RETURN;
END getSeq;
Run Code Online (Sandbox Code Playgroud)

Cod*_*odo 5

显示的过程很可能无法编译.使用多个变量的SELECT ... INTO的正确语法是:

SELECT myPrev, myNext INTO prevContentID, nextContentID
from myTable
where contentID = theContentID;
Run Code Online (Sandbox Code Playgroud)