php oracle 大字段,oracle删除表字段 + PHP处理oracle中的clob字段类型

$query = "UPDATE testcases

SET testcase_name='$testcase_name',

testcase_description=EMPTY_CLOB(), testcase_steps=EMPTY_CLOB()

WHERE id='$testcase_id' RETURNING

testcase_description,testcase_steps INTO :tdesc,

:tsteps";

$conn = oci_connect($username,$password,$db,'UTF8');

$result = @oci_parse($conn,$query);$tdesc_clob = @oci_new_descriptor($conn,

OCI_D_LOB);

$tsteps_clob = @oci_new_descriptor($conn,

OCI_D_LOB);@oci_bind_by_name($result, ":tdesc", $tdesc_clob, -1,

OCI_B_CLOB);

@oci_bind_by_name($result, ":tsteps", $tsteps_clob, -1,

OCI_B_CLOB);

@oci_execute($result,OCI_DEFAULT);

if ($tdesc_clob->save($testcase_description)

&&

$tsteps_clob->save($testcase_steps) )

{

@oci_commit($conn);

}

1. oci_bind_by_name ( resource stmt, string ph_name, mixed

&variable [, int maxlength [, int type]]

)

上面这段是以前的代码,现在看了一下手册,发现OCI_B_CLOB被SQLT_CLOB代替了,所以上面的oci_bind_by_name方法最后一个参数最好写SQLT_CLOB,当然写OCI_B_CLOB也能用。

在oci_bind_by_name中,最后一个参数用什么值当然跟你要绑定的数据类型有关系,这里我们是CLOB,所以用OCI_B_CLOB(或SQLT_CLOB).

如果是其他类型,那么可参考一下对应关系:

SQLT_FILE -

对应于 BFILE

SQLT_CFILE - 对应于 CFILE

SQLT_CLOB - 对应于 CLOB

SQLT_BLOB - 对应于 BLOB

SQLT_ROWID - 对应于 ROWID

SQLT_NTY - 对应于有名字的数据类型

SQLT_INT -

对应于 integers

SQLT_CHR - 对应于 VARCHARs

SQLT_BIN - 对应于 RAW 列

SQLT_LNG - 对应于 LONG 列

SQLT_LBI - 对应于 LONG RAW 列

SQLT_RSET - 对应于游标

已经过时的OCI_B_*和SQLT_*的对应关系是:

OCI_B_NTY -

SQLT_NTY

OCI_B_BFILE - SQLT_BFILEE

OCI_B_CFILEE - SQLT_CFILEE

OCI_B_CLOB -

SQLT_CLOB

OCI_B_BLOB -

SQLT_BLOB

OCI_B_ROWID - SQLT_RDD

OCI_B_CURSOR - SQLT_RSET

OCI_B_BIN - SQLT_BIN

OCI_B_INT - SQLT_INT

2. oci_new_descriptor( resource connection [, int type] )

oci_new_descriptor是初始化一个新的空 LOB 或

FILE 描述符,它的最后一个参数type的取值只有3种:OCI_D_FILE, OCI_D_LOB 以及

OCI_D_ROWID

附:对其他类型的绑定变量用法

$query = "select * from

testcases where project_id = :current_project_id and milestone_id =

:current_milestone_id"; $conn = oci_connect($username,$password,$db,'UTF8');

$result = oci_parse($conn, $query);

oci_bind_by_name($result, ":current_project_id",

$_SESSION['project_id'], -1, SQLT_INT );

oci_bind_by_name($result, ":current_milestone_id",

$first_milestone, -1, SQLT_INT

); oci_execute($result);

对于数字,用SQLT_INT(OCI_B_INT)和SQLT_CHR都行。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值