Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ssis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从PHP OCI中选择Oracle中插入的记录_Php_Oracle_Plsql_Oracle Call Interface - Fatal编程技术网

从PHP OCI中选择Oracle中插入的记录

从PHP OCI中选择Oracle中插入的记录,php,oracle,plsql,oracle-call-interface,Php,Oracle,Plsql,Oracle Call Interface,我正在使用我的PHP站点上的OCI执行一个PLSQL块,该站点内部正在运行一些过程。最后一个过程是返回特定表的插入记录rowid BEGIN proc1(1); proc2(2, rowid_); END; 我想做的是,我想获取这个rowid的记录的主键值 有没有一种方法可以像下面这样运行它,并使用oci_fetch_row或其他方法将选择结果输出到PHP BEGIN proc1(); proc2(rowid_); -- out variable SELECT col

我正在使用我的PHP站点上的OCI执行一个PLSQL块,该站点内部正在运行一些过程。最后一个过程是返回特定表的插入记录rowid

BEGIN

  proc1(1);
  proc2(2, rowid_);

END;
我想做的是,我想获取这个rowid的记录的主键值

有没有一种方法可以像下面这样运行它,并使用oci_fetch_row或其他方法将选择结果输出到PHP

BEGIN

  proc1();
  proc2(rowid_); -- out variable

 SELECT column1, column2
 FROM my_table
 WHERE rowid = rowid_;

END;

有更好的办法。尝试以下方法:

DECLARE
  nPK_col  NUMBER;
  nCol1    NUMBER := 1;
  nCol2    NUMBER := 2;
BEGIN
  INSERT INTO SOME_TABLE(COL1, COL2)
    VALUES (nCol1, nCol2)
    RETURNING PK_COL INTO nPK_col;
END;
本例假设名为
PK\u COL
的主键列在执行
INSERT
语句期间以某种方式填充,例如通过触发器填充。
INSERT
语句的
RETURNING
子句指定插入行的
PK\u COL
值应放入指定的变量中,在本例中为
nPK\u COL
。您可以在
RETURNING
子句中指定多个列和变量-。您可能需要将其放入执行实际插入的任何过程中,然后添加一个输出参数,以允许将值传回调用者,或者使用一个函数而不是过程,并将主键值作为函数的返回值

分享和享受