OraGetValue Function

Action

Retrieves any value either from the program variable that is bound with the specified place holder in the SQL statement or PL/SQL block, or from the output variable that is defined for the specified select-list item in the SQL query. This function is used to retrieve values from both scalar and array program variables that are defined for the specified select-list item.

Include file

Ora.bdh

Syntax

OraGetValue( in  cCursor     : cursor,
             in  sSqlVar     : string,
             out buffer      : string,
             in  nBufferSize : number,
             in  nIndex      : number optional,
             in  nDatatype   : number optional ): boolean;

Return value

  • true if successful

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

Parameter Description
cCursor Cursor associated with a database connection
sSqlVar

This parameter can be one of the following:

  • the name of the place holder in the SQL statement or PL/SQL block. In this case, the parameter must include the preceding colon identifying it as a place holder

  • the index of the select-list item in the SQL query. Position indices start at 1 for the first (leftmost) select-list item

注: In the latter case, the column number has to be passed to the function as a string
buffer Variable receiving either the value assigned to the place holder or the data retrieved from a fetched row, as the case may be
nBufferSize Size of the variable receiving the value
nIndex

Index or row number (optional). This parameter has to be passed to the function whenever retrieving a value assigned to an array place holder or fetching data from multiple rows. It can be one of the following:

  • the array index of the program variable

  • the row number for the long value in the fetched data

nDatatype Specifies which data type to retrieve (optional). See Oracle data types for a list of data types

Example

var
  hConnection : number;
  cCursor     : cursor;

dcltrans
  transaction TMain
  var
    nAge  : number;
    sName : string;
  begin
    OraLogon(hConnection, "user", "password", "orclnet2");
    OraOpen(cCursor, hConnection);
    OraParse(cCursor, sqlSelect);
    OraBind(cCursor, ":1", SQLT_INT);
    OraSetInt(cCursor, ":1", 25);
    OraDefine(cCursor, 1, SQLT_CHR, 32);
    OraDefine(cCursor, 2, SQLT_INT);
    OraExec(cCursor);
    
    while OraFetch(cCursor) do
      OraGetValue(cCursor, "1", sName, STRING_COMPLETE);
      nAge := OraGetInt(cCursor, "2");
      write(sName, 32); write(nAge, 5); writeln;
    end;
    
    OraClose(cCursor);
    OraLogoff(hConnection);
  end TMain;

dclsql
  sqlSelect:
    SELECT * FROM persons WHERE age > :1;

Output

Howard 33Michael 44Bobby 61Sara 38