从PHP OCI中选择Oracle中插入的记录
我正在使用我的PHP站点上的OCI执行一个PLSQL块,该站点内部正在运行一些过程。最后一个过程是返回特定表的插入记录rowid从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
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
子句中指定多个列和变量-。您可能需要将其放入执行实际插入的任何过程中,然后添加一个输出参数,以允许将值传回调用者,或者使用一个函数而不是过程,并将主键值作为函数的返回值
分享和享受