Ora8SetBinary Function

Action

Assigns binary data to the program variable that is bound to the specified place holder in the SQL statement or PL/SQL block. The place holder is identified by the name or the number specified in the SQL statement or PL/SQL block. This function is used to assign values to both scalar and array program variables.

Using this function, any data type listed below can be assigned to the program variable that is bound to the specified place holder:

  • SQLT_NUM
  • SQLT_VNU
  • SQLT_RID
  • SQLT_DAT
  • SQLT_VBI
  • SQLT_BIN
  • SQLT_LBI
  • SQLT_LVB
  • SQLT_CUR

Include file

Ora8.bdh

Syntax

Ora8SetBinary( in hStmt   : number,
               in sSqlVar : string,
               in sBinary : string,
               in nLength : number,
               in nIndex  : number optional): boolean;

Return value

  • true if successful

  • false otherwise; In this case, you can use the Ora8OciError function to retrieve the Oracle OCI error code.

Parameter Description
hStmt Statement handle.
sSqlVar Name of the place holder in the SQL statement or PL/SQL block. This parameter must include the preceding colon identifying it as a place holder.
sBinary Binary data that is assigned to the program variable that is bound to the specified place holder in the SQL statement or PL/SQL block.
nLength Length of the binary data block (in bytes).
nIndex Array index (optional). For array binding operations, this parameter specifies the array index of the program variable.

Example

var
  ghEnv0        : number;
  ghError0      : number;
  ghStmt0       : number;
  ghSvcCtx0     : number;

dcltrans
  transaction TMain
  const
    PUBLIC_KEY := "\h59b20094...";
  begin
    Ora8Init(ghEnv0, OCI_DEFAULT);
    Ora8HandleAlloc(ghEnv0, ghError0, OCI_HTYPE_ERROR);
    Ora8Logon(ghEnv0, ghSvcCtx0, "user", "password", "orclnet2");

    Ora8HandleAlloc(ghEnv0, ghStmt0, OCI_HTYPE_STMT);
    Ora8StmtPrepare(ghStmt0, sqlInsert, OCI_NTV_SYNTAX);

    Ora8Bind(ghStmt0, ":name", SQLT_CHR, 32);
    Ora8Bind(ghStmt0, ":key", SQLT_BIN, 64);

    Ora8SetString(ghStmt0, ":name", "Michael");
    Ora8SetBinary(ghStmt0, ":key",  PUBLIC_KEY, 0);

    Ora8StmtExecute(ghSvcCtx0, ghStmt0);

    Ora8HandleFree(ghStmt0, OCI_HTYPE_STMT);
    Ora8Logoff(ghSvcCtx0);
    Ora8HandleFree(ghError0, OCI_HTYPE_ERROR);
    Ora8HandleFree(ghEnv0, OCI_HTYPE_ENV);
  end TMain;

dclsql
  sqlInsert:
    INSERT INTO keys (name, key) VALUES (:name, :key);