Neoview SQL Reference Manual (R2.5)

Example of EXPLAIN Statement Using ODBC
Suppose an application prepares a SELECT statement: “SELECT * FROM
ODBC_PERSNL.EMPLOYEE”. Use SQLGetCursorName to find the statement name. In this
example, the returned statement name is "SQL_CUR_21".
To get the plan for “SELECT * FROM ODBC_PERSNL.EMPLOYEE”, the application must allocate
another statement handle and issue SQLExecDirect on “EXPLAIN options ‘f’ SQL_CUR_21”.
The plan is returned as a result-set. Use SQLFetch to retrieve the result.
SQLPrepare: StatementText = " SELECT * FROM ODBC_PERSNL.EMPLOYEE;"
SQLGetCursorName: Out:*CursorName = "SQL_CUR_21"
SQLAllocHandle: HandleType = SQL_HANDLE_STMT=3
SQLExecDirect: StatementText = "EXPLAIN options 'f' "SQL_CUR_21"
SQLPrepare:
In: StatementHandle = 0x003B1A10,
StatementText = "select * from odbc_persnl.employee;", TextLength = 35
Return: SQL_SUCCESS=0
SQLGetCursorName:
In: StatementHandle = 0x003B1A10, CursorName = 0x001577E8,
BufferLength = 300, NameLengthPtr = 0x001552C0
Return: SQL_SUCCESS=0
Out: *CursorName = "SQL_CUR_3", *NameLengthPtr = 9
SQLAllocHandle:
In: HandleType = SQL_HANDLE_STMT=3, InputHandle = 0x003B1908,
OutputHandlePtr = 0x00157F68
Return: SQL_SUCCESS=0
Out: *OutputHandlePtr = 0x003B2FF0
SQLExecDirect:
In: Statementhandle = 0x003B2FF0,
StatementText = "explain options 'f' SQL_CUR_3", Statementlength = 29
Return: SQL_SUCCESS=0
Get Data All:
"EXPLAIN OUTPUT(FORMATTED)"
" "
"LC RC OP OPERATOR OPT DESCRIPTION CARD "
"--- --- --- -------------------- -------- -------------------- ---------"
" "
"3 . 4 root 1.76E+003"
"2 . 3 split_top 1:64(hash2) 1.76E+003"
"1 . 2 partition_access 1.76E+003"
". . 1 file_scan fs fr EMPLOYEE 1.76E+003"
8 rows fetched from 1 column.
Example of EXPLAIN Statement Using JDBC
import common.*;
import java.sql.*;
public class j1
{
public static void main(String args[])
{
Connection connection;
Statement stmt;
PreparedStatement pStmt;
ResultSet rs;
DatabaseMetaData dbMeta;
int rowNo;
String table = "cat_expR2.sch_expR2.nation";
String sqlText = "explain select * from " + table;
try
{
connection = expUtils.getPropertiesConnection();
132 SQL Statements