php调用oracle存储过程与函数

php调用oracle存储过程与函数,第1张

对于存储过程的源代码,开始都需要先定义接受的参数,例如:

PROCEDURE edit_entry(

status_out OUT NUMBER,

status_msg_out OUT VARCHAR2,

id_inout IN OUT INTEGER,

title_in IN VARCHAR2,

text_out OUT CLOB,

categories_in IN list_of_numbers

);

从 PHP 中调用存储过程 对于要从 PHP 中执行以调用过程的 SQL 语句而言,您将通常在 Oracle BEGIN END; 块(称作匿名块)中嵌入调用。例如:

<php

// etc

//$sql = 'BEGIN sayHello(:name, :message); END;';

//然后,通过调用 oci_bind_by_name() 将参数绑定到 PHP 变量。 如果使用以下 DDL 语句定义了 sayHello

//:

//CREATE OR REPLACE PROCEDURE

//sayHello (name IN VARCHAR2, greeting OUT VARCHAR2)

//AS

//BEGIN

//greeting := 'Hello ' || name;

//END;

//

//注意,您可以使用 SQLPlus 命令行运行上面的语句。将该语句保存到文件 (SAYHELLOSQL)。接下来,使用

//SQLPlus 登录:

 // $ sqlplus username@SID

 // 然后,使用 START 命令创建该过程:

 // SQL> START /home/username/SAYHELLOSQL

 // 以下 PHP 脚本调用该过程:

$conn = oci_connect('SCOTT','TIGER') or die;

$sql = 'BEGIN sayHello(:name, :message); END;';

$stmt = oci_parse($conn,$sql);

// Bind the input parameter

oci_bind_by_name($stmt,':name',$name,32);

// Bind the output parameter

oci_bind_by_name($stmt,':message',$message,32);

// Assign a value to the input

$name = 'Harry';

oci_execute($stmt);

// $message is now populated with the output value

print "$message\n";

>

调用程序包中的过程时,将使用句号来分隔程序包名称与过程名称。 可以使用以下语句指定 blog 程序包:

CREATE OR REPLACE PACKAGE blog AS

TYPE cursorType IS REF CURSOR RETURN blogs%ROWTYPE;

/

Fetch the latest num_entries_in from the blogs table, populating

entries_cursor_out with the result

/

PROCEDURE latest(

num_entries_in IN NUMBER,

entries_cursor_out OUT cursorType

);

/

Edit a blog entryIf id_inout is NULL, results in an INSERT, otherwise

attempts to UPDATE the existing blog entry status_out will have the value

1 on success, otherwise a negative number on failure with status_msg_out

containing a description

categories_in is a collection where list_of_numbers is described by

TYPE list_of_numbers AS VARRAY(50) OF NUMBER;

/

PROCEDURE edit_entry(

status_out OUT NUMBER,

status_msg_out OUT VARCHAR2,

id_inout IN OUT INTEGER,

title_in IN VARCHAR2,

text_out OUT CLOB,

categories_in IN list_of_numbers

);

END blog;

/

在PHP的开发过程中,会需要连接数据库。一般情况下我们用的是mysql数据库,相信这个大家都很熟了,使用mysql_函数就能 *** 作mysql数据库了。但是我们时候后也会用到Oraclel数据库,毕竟Oracle比较安全。PHP提供了两套函数与Oracle连接,分别是ORA_和OCI函数。其中ORA_函数略显陈旧。OCI函数更新据说更好一些。两者的使用语法几乎相差无几。你的PHP安装选项应该可以支持两者的使用。

代码:

>

以上就是关于php调用oracle存储过程与函数全部的内容,包括:php调用oracle存储过程与函数、PHP怎么连oracle、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/10101003.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-05
下一篇 2023-05-05

发表评论

登录后才能评论

评论列表(0条)

保存