oci 字段信息

本文介绍如何使用OCI (Oracle Call Interface) 获取SQL语句中选择列表的位置参数。通过 OCIParamGet 和 OCIAttrGet 函数来获取参数的数据类型、列名及数据大小。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 OCIParam     *mypard;
     ub4          counter;
     ub2          dtype,deptlen;
     text         *col_name;
     ub4          col_name_len;
     sb4          parm_status;
     /* Request a parameter descriptor for position 1 in the select-list */

     counter = 1;
 parm_status = OCIParamGet(stmthp, OCI_HTYPE_STMT, errhp, (dvoid **)&mypard,
        counter);
 /* Loop only if a descriptor was successfully retrieved for
    current position, starting at 1 */
 while (parm_status==OCI_SUCCESS) {
  /* Retrieve the data type attribute */
  error_proc(errhp, OCIAttrGet((dvoid*) mypard, (ub4) OCI_DTYPE_PARAM,
       (dvoid*) &dtype,(ub4 *) 0, (ub4) OCI_ATTR_DATA_TYPE,
      (OCIError *) errhp  ));
  /* Retrieve the column name attribute */
  error_proc(errhp, OCIAttrGet((dvoid*) mypard, (ub4) OCI_DTYPE_PARAM,
      (dvoid**) &col_name,(ub4 *) &col_name_len, (ub4) OCI_ATTR_NAME,
      (OCIError *) errhp ));

  /* Retrieve the column data size */
  error_proc(errhp, OCIAttrGet((dvoid*) mypard, (ub4) OCI_DTYPE_PARAM,
        (dvoid*) &deptlen, (ub4 *) 0, (ub4) OCI_ATTR_DATA_SIZE,
        (OCIError *) errhp  ));

  printf("column=%s  datatype=%d   datasez=%d/n/n", col_name, dtype,deptlen);
  fflush(stdout);
  /* increment counter and get next descriptor, if there is one */
  counter++;
  parm_status = OCIParamGet(stmthp, OCI_HTYPE_STMT, errhp, (dvoid **)&mypard, counter);
 }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值