Selecting a LOB Column into a LONG Buffer Using a Simple Fetch

类别:编程语言 点击:0 评论:0 推荐:
Selecting a LOB Column into a LONG Buffer Using a Simple Fetch

The following example illustrates selecting a LOB column using a simple fetch:

void simple_fetch()

{

  word i, buf1 = 0;

  word retval;

  text buf[15000];

  text *selstmt = (text *) "SELECT AD_SOURCETEXT FROM PRINT_MEDIA WHERE PRODUCT_ID = 2004";

 

  OCIStmtPrepare(stmthp, errhp, selstmt, (ub4)strlen((char *)selstmt),

                 (ub4) OCI_NTV_SYNTAX, (ub4) OCI_DEFAULT);

 

  retval = OCIStmtExecute(svchp, stmthp, errhp, (ub4) 0, (ub4) 0,

                          (const OCISnapshot*) 0, (OCISnapshot*) 0,

                          (ub4) OCI_DEFAULT);

  while (retval == OCI_SUCCESS || retval == OCI_SUCCESS_WITH_INFO)

  {

    OCIDefineByPos(stmthp, &defhp[1], errhp, (ub4) 2, (dvoid *) buf,

                   (sb4) sizeof(buf1), (ub2) SQLT_CHR, (dvoid *) 0,

                   (ub2 *) 0, (ub2 *) 0, (ub4) OCI_DEFAULT);

    retval = OCIStmtFetch(stmthp, errhp, (ub4) 1,

                          (ub4) OCI_FETCH_NEXT, (ub4) OCI_DEFAULT);

    if (retval == OCI_SUCCESS || retval == OCI_SUCCESS_WITH_INFO)

      DISCARD printf("buf = %.*s\n", buf2);

  }

}

 

本文地址:http://com.8s8s.com/it/it28008.htm