Hi Pasha, On Tue, 8 May 2001, Pasha Murat (630)840-8237@169G wrote: > - Original TOracleServer::GetTables assumes that all the tables are described in > the table called `sys.usr_tables'. Its equivalent in CDF Oracle DB is calles > `all_tables'. May be the name of this table needs to be made a configurable > parameter? you can use sys.user_tables and sys.all_tables in CDF DB as well. I guess these are standard names, and user_tables(all_tables) is a synonym for sys.user_tables (sys.all_tables); > > - now - the problem. below you find slightly modified source of the test_sql example, > which comes with the original distribution. I found, that I can successfully issue > `select' query, however `describe' query fails. "describe" command is PL/SQL specific, that is not a part of SQL standard, so the statement: "ORA-00900: invalid SQL statement" is correct and does not reflect an error on the part of the underlying ROOT Oracle API, but reflects a user error :). regards, Dmitri Litvintsev /----------------------------------------------------------\ | Tel: (630) 840 5005 | | FAX: (630) 840 2968 | | office: 169-E CDF Trailers | | E-mail: litvinse@fnal.gov | \----------------------------------------------------------/ > > Wondering if somebody by chance has a clue about what I'm doing wrong... > > -thanks, Pasha > > ----------------------------------------------------- > root [15] test_sql("select TABLE_NAME FROM all_tables where TABLE_NAME LIKE 'L3%'") > TOracleServer begin > L3_CALIBS > L3_CUT_AND_PARAMETERS > L3_EXES > L3_OPTION_CLASSES > L3_OPTION_CLASSES_L3_TALKTOS > L3_OPTION_INSTANCES > L3_OPTION_SEQUENCES > L3_TALKTOS > L3_TCLS > L3PCS > L3PCUPDATES > end > root [16] test_sql("describe all_tables") > TOracleServer begin > > ORA-00900: invalid SQL statement > > Parse error at character offset 0 in SQL statement. > end > > ------------------------------------------------------------------------------ > void test_sql(const char* query) { > // any legal SQL statement, for example > > char * sql="select table_name from all_tables"; > > /*connect with oracle server */ > > TSQLServer *db=TSQLServer::Connect("oracle://cdfora.fnal.gov:1521/cdf.fnal.gov", > "hod","konem"); > TSQLRow* row1; > TSQLResult* res=db->Query(query); > if (! res) goto EXIT; > /*print rows one by one */ > while (row1 = res->Next()) { > TOracleRow* row2 = (TOracleRow*)row1; > for (int i=0; i<res->GetFieldCount();i++) { > int j=row2->GetFieldType(i); > switch(j) { > case 3: > printf("%*d ",row2->GetFieldLength(i),*(int*)row2->GetFieldData(i)); > break; > case 4: > printf("%*.2f",row2->GetFieldLength(i),*(float*)row2->GetFieldData(i)); > break; > default: > printf("%*.*s", > row2->GetFieldLength(i), > row2->GetFieldLength(i), > row2->GetFieldData(i)); > } > } > cout<<endl; > delete row1; > } > > EXIT:; > printf("end \n"); > delete res; > delete db; > } > ------------------------------------------------------------------------ >
This archive was generated by hypermail 2b29 : Tue Jan 01 2002 - 17:50:44 MET