有用OCI开发过oracle georaster的吗 很多georaster的函数操作都是用PL/SQL语句,先要DECLARE,在BEGIN END执行。普通的sql语句我会用OCI来绑定,然后执行获取,但是在PL/SQL中的语句该怎么用OCI绑定获取呢?急死我了,谁有示范的例子 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 一样的调用啊:OraText *sqlstmt = (OraText *)"BEGIN CDEMODT_INS_SEL(:1, :2, :3, :4, :5, :6); END; ";然后prepare, binding, ,,,,就像: /* Converts the text strings to the datetime types in the table */ for (i=0; i<3; i++) { if (ret = OCIDateTimeFromText(authp,errhp,(CONST OraText *)strdate[i], (ub4) strlen((char *)strdate[i]),(CONST OraText *) fmtdate[i], (ub1) strlen((char *)fmtdate[i]),(OraText *) NULL,(ub4) 0,dvar[i])) { chk_err(errhp,ret,__LINE__,(OraText *)"OCIDateFromText"); return OCI_ERROR; } } /* Converts the text strings to the interval types in the table */ for (i=0; i<2; i++) { if ((ret = OCIIntervalFromText((dvoid *)authp, errhp,(CONST OraText *) strdate[i+3], (ub4) strlen((char *)strdate[i+3]), (OCIInterval *)ivar[i])) != OCI_SUCCESS) { chk_err(errhp, ret, __LINE__,(OraText *)"OCIIntervalFromText"); return OCI_ERROR; } } /* Preparation of statment handle for the SQL statement */ if ((ret = OCIStmtPrepare(stmthp, errhp, insstmt, (ub4)strlen((char *)insstmt), OCI_NTV_SYNTAX, OCI_DEFAULT)) != OCI_SUCCESS) { chk_err(errhp,ret,__LINE__,(OraText *)"OCIStmtPrepare"); return OCI_ERROR; } .......... 请问楼上大侠,OraText *sqlstmt = (OraText *)"BEGIN CDEMODT_INS_SEL(:1, :2, :3, :4, :5, :6); END; ";这句话中BEGIN ....END中间的是什么,怎么得来的 就是说我把语句 做成存储过程,然后在BEGIN END中调用。是吧 存储过程是你在外边创建的,在程序里头也可以。调用方式就像上边那样。你上rdbms\demo目录下边搜搜,有相关的例子。 oracle 分组查询问题 这样的SQL如何让其按原来的顺序排序? 十万火急、C# 和 Oracle 的连接问题、 请教一个拼动态sql的问题 急急急。求ORACLE交叉语句问题。 windows2003上asp.net连接oracle的问题 求PowerDesign的实例 关于存储过程!有一堆帐号TXT格式,每行一字符串(username) to_char是Oracle中的函数吗?哪有Oracle的函数列表和扩展的SQL语句详细说明? oracle 11g 过一会就会断开连接,提示无监听程序,但是服务里面监听又是开启的 一个8位字符串,或者一个8位的数8 plsql 单引号问题
OraText *sqlstmt = (OraText *)"BEGIN CDEMODT_INS_SEL(:1, :2, :3, :4, :5, :6); END; ";然后prepare, binding, ,,,,
就像: /* Converts the text strings to the datetime types in the table */
for (i=0; i<3; i++) {
if (ret = OCIDateTimeFromText(authp,errhp,(CONST OraText *)strdate[i],
(ub4) strlen((char *)strdate[i]),(CONST OraText *) fmtdate[i],
(ub1) strlen((char *)fmtdate[i]),(OraText *) NULL,(ub4) 0,dvar[i])) {
chk_err(errhp,ret,__LINE__,(OraText *)"OCIDateFromText");
return OCI_ERROR;
}
} /* Converts the text strings to the interval types in the table */
for (i=0; i<2; i++) {
if ((ret = OCIIntervalFromText((dvoid *)authp, errhp,(CONST OraText *)
strdate[i+3], (ub4) strlen((char *)strdate[i+3]),
(OCIInterval *)ivar[i])) != OCI_SUCCESS) {
chk_err(errhp, ret, __LINE__,(OraText *)"OCIIntervalFromText");
return OCI_ERROR;
}
} /* Preparation of statment handle for the SQL statement */
if ((ret = OCIStmtPrepare(stmthp, errhp, insstmt, (ub4)strlen((char *)insstmt), OCI_NTV_SYNTAX,
OCI_DEFAULT)) != OCI_SUCCESS) {
chk_err(errhp,ret,__LINE__,(OraText *)"OCIStmtPrepare");
return OCI_ERROR;
}
..........
就是说我把语句 做成存储过程,然后在BEGIN END中调用。是吧
调用方式就像上边那样。
你上rdbms\demo目录下边搜搜,有相关的例子。