Segmentation fault in SQL*Plus

Late yesterday afternoon, I tried to query a table in my
database and received a segmentation fault(core dumped). I
receive the segmentation fault only when trying to query 4
tables (out of a total of about 20) and only in SQL*Plus. If I
query from svrmgrl or through an ODBC connection, I have no
problems. I tried reinstallng SQL*Plus, but that did not help.
Any ideas?
Thanks
null

Try:
SQL>Set arraysize 1.
You may have longs or too much data for an array fetch > 1
Howard Chalmers (guest) wrote:
: Howard Chalmers (guest) wrote:
: : Late yesterday afternoon, I tried to query a table in my
: : database and received a segmentation fault(core dumped). I
: : receive the segmentation fault only when trying to query 4
: : tables (out of a total of about 20) and only in SQL*Plus. If
: I
: : query from svrmgrl or through an ODBC connection, I have no
: : problems. I tried reinstallng SQL*Plus, but that did not
help.
: : Any ideas?
: : Thanks
: Additional info: if I try to query a small subset (usually 1-5)
: of the fields in any of the tables, I do not get the
: segmentation fault. If I try to select * or to select more
than
: about 5 fields, I get the fault.
null

Similar Messages

  • Segmentation Fault when connecting to SQL*Plus from Applications tier

    Hi Everyone -
    I am currently in the process of upgrading a client from 11.5.10.2 to 12.1.1 (eventually 12.1.3) on a OEL x86-64 server. I have laid down the software stack and followed all of the requirements as per the Installation manuals and 761566.1. I also have an open SR right now on this issue - but I wanted to see if any of you have ever run into the issue that I am encountering.
    When I try to run adadmin/adpatch - I get to the prompt of providing the system user password and the utility simply exits. No errors in adpatch.log or adadmin.log (both are 0 bytes in size).
    When I try to connect using SQL*Plus from the applications tier using either:
    sqlplus apps/****@SID
    sqlplus system/****@SID
    I get a Segmentation Fault error. There are also no errors in my alert log file on the database tier. I found this error while attempting to apply the upgrade merge patch.
    Has anyone ever seen s Segmentation Fault error? I have search MOS, found a couple of potential solutions - but nothing has solved the issue so far.
    Thanks in advance...
    Brenna

    >
    Are you on 11.1.0.5.0? Is this the database version?
    No, my database tier is 11.2.0.3 (the database version displayed above was the client version running on the Application Tier.
    Who is the owner of the application tier files? If it is applmgr user, please make sure you login as that user and source the application env file before running sqlplus -- Please issue "echo $ORACLE_HOME" and "which sqlplus" and post the output here.
    My owner of the application tier is oracle. I have sourced the environment using $APPL_TOP/APPSR12Dev1_******.env
    [oracle@****** log]$ echo $ORACLE_HOME
    /u01/app/oracle/R12Dev1/apps/tech_st/10.1.2
    [oracle@****** log]$ which sqlplus
    /u01/app/oracle/R12Dev1/apps/tech_st/10.1.2/bin/sqlplus
    >
    Please relink sqlplus by issuing "$ORACLE_HOME/bin/relink all > relink.txt 2>&1" and check the relink.txt file for any error
    A number of errors occur during the relink, here are some of them:
    /u01/app/oracle/R12Dev1/apps/tech_st/10.1.2/bin/genclntsh
    /usr/bin/ld: warning: i386:x86-64 architecture of input file `/u01/app/oracle/R12Dev1/apps/tech_st/10.1.2/lib/libn10.a(nnfgt.o)' is incompatible with i386 output
    /usr/bin/ld: warning: i386:x86-64 architecture of input file `/u01/app/oracle/R12Dev1/apps/tech_st/10.1.2/lib/libn10.a(ntcontab.o)' is incompatible with i386 output
    /u01/app/oracle/R12Dev1/apps/tech_st/10.1.2/bin/genagtsh /u01/app/oracle/R12Dev1/apps/tech_st/10.1.2/lib/libagtsh.so 1.0
    /usr/bin/ld: warning: i386:x86-64 architecture of input file `/u01/app/oracle/R12Dev1/apps/tech_st/10.1.2/lib/libn10.a(nnfgt.o)' is incompatible with i386 output
    /usr/bin/ld: warning: i386:x86-64 architecture of input file `/u01/app/oracle/R12Dev1/apps/tech_st/10.1.2/lib/libn10.a(ntcontab.o)' is incompatible with i386 output
    /u01/app/oracle/R12Dev1/apps/tech_st/10.1.2/lib/libn10.a(nnfgt.o):(.rodata+0xc8): undefined reference to `nnflboot'
    /u01/app/oracle/R12Dev1/apps/tech_st/10.1.2/lib/libn10.a(ntcontab.o):(.data+0x8): undefined reference to `nttini'
    /u01/app/oracle/R12Dev1/apps/tech_st/10.1.2/lib/libn10.a(ntcontab.o):(.data+0x28): undefined reference to `ntzini'
    /u01/app/oracle/R12Dev1/apps/tech_st/10.1.2/lib/libn10.a(ntcontab.o):(.data+0x68): undefined reference to `ntpini'
    /u01/app/oracle/R12Dev1/apps/tech_st/10.1.2/lib/libn10.a(ntcontab.o):(.data+0x88): undefined reference to `ntusini'
    collect2: ld returned 1 exit status
    Thanks again...

  • SQL Server Driver for Linux causes Segmentation Fault

    Hello,
    I'm using the SQL Server Driver 11.0.1790 on Linux with mod_perl and Apache. While running fine with all my CLI Perl apps I occasionally get Segmentation Faults when using it from within mod_perl applications. Sometimes every other connect to the database
    segfaults. I've created a core dump and did a stack backtrace:
    Loaded symbols for /usr/lib/../lib64/libxml2.so.2
    Core was generated by `/usr/sbin/httpd2 -X'.
    Program terminated with signal 11, Segmentation fault.
    #0 0x0000000000000000 in ?? ()
    (gdb) bt
    #0 0x0000000000000000 in ?? ()
    #1 0x00007f8a8aeda803 in __connect_part_two (connection=0x7f8a99c885e0) at SQLConnect.c:1891
    #2 0x00007f8a8aedffd6 in SQLDriverConnect (hdbc=0x7f8a99c885e0, hwnd=0x0, conn_str_in=0x7fff1e7369ee "",
    len_conn_str_in=<value optimized="" out="">,
    conn_str_out=0x7fff1e736a80 "DSN=XXXXX;UID=XXX;PWD=XXXXXXXX;WSID=XXXXXXXX;DATABASE=XXXXX;MARS_Connection=Yes;",
    conn_str_out_max=512, ptr_conn_str_out=0x7fff1e736a7e, driver_completion=0) at SQLDriverConnect.c:1530
    #3 0x00007f8a8b1458ee in odbc_db_login6 (dbh=0x7f8a99938ca0, imp_dbh=0x7f8a99c8acd0,
    dbname=0x7fff1e736c80 "DSN=XXXXX;MARS_Connection=Yes;UID=XXX;PWD=XXXXXXXX", uid=0x7f8a9996e8b0 "XXX",
    pwd=0x7f8a9996e8d0 "XXXXXXXX", attr=0x7f8a99938c40) at dbdimp.c:942
    #4 0x00007f8a8b141822 in XS_DBD__ODBC__db__login (my_perl=<value optimized="" out="">, cv=<value optimized="" out="">) at ./ODBC.xsi:98
    #5 0x00007f8a9125b091 in Perl_pp_entersub (my_perl=0x7f8a96274f50) at pp_hot.c:3046
    #6 0x00007f8a912595f6 in Perl_runops_standard (my_perl=0x7f8a96274f50) at run.c:41
    #7 0x00007f8a911eb755 in Perl_call_sv (my_perl=0x7f8a96274f50, sv=0x7f8a99938bc8, flags=2) at perl.c:2632
    #8 0x00007f8a8b791d02 in XS_DBI_dispatch (my_perl=0x7f8a96274f50, cv=0x7f8a98cbbe60) at DBI.xs:3473
    #9 0x00007f8a9125b091 in Perl_pp_entersub (my_perl=0x7f8a96274f50) at pp_hot.c:3046
    #10 0x00007f8a912595f6 in Perl_runops_standard (my_perl=0x7f8a96274f50) at run.c:41
    #11 0x00007f8a911ebab0 in Perl_call_sv (my_perl=0x7f8a96274f50, sv=0x7f8a97db4f68, flags=10) at perl.c:2647
    #12 0x00007f8a9154ba31 in modperl_callback (my_perl=0x7f8a96274f50, handler=0x7f8a96230c90, p=0x7f8a96334838, r=0x7f8a963348b0,
    s=0x7f8a962303b0, args=0x7f8a998376a8) at modperl_callback.c:101
    #13 0x00007f8a9154c79c in modperl_callback_run_handlers (idx=6, type=4, r=0x7f8a963348b0, c=<value optimized="" out="">, s=0x7f8a962303b0,
    pconf=<value optimized="" out="">, plog=0x0, ptemp=0x0, run_mode=MP_HOOK_RUN_FIRST) at modperl_callback.c:262
    #14 0x00007f8a9154cb6f in modperl_callback_per_dir (idx=-1714610816, r=<value optimized="" out="">, run_mode=<value optimized="" out="">)
    at modperl_callback.c:369
    #15 0x00007f8a91546b93 in modperl_response_handler_run (r=0x7f8a963348b0) at mod_perl.c:1000
    #16 modperl_response_handler (r=0x7f8a963348b0) at mod_perl.c:1039
    #17 0x00007f8a95f01e08 in ap_run_handler ()
    #18 0x00007f8a95f0226c in ap_invoke_handler ()
    #19 0x00007f8a95f0ff00 in ap_process_request ()
    #20 0x00007f8a95f0ce98 in ?? ()
    #21 0x00007f8a95f08b28 in ap_run_process_connection ()
    #22 0x00007f8a95f14e5a in ?? ()
    #23 0x00007f8a95f15126 in ?? ()
    #24 0x00007f8a95f15903 in ap_mpm_run ()
    #25 0x00007f8a95eec9be in main ()
    </value></value></value></value></value></value></value>
    Calling something at NULL obviously doesn't look right…
    Can onebody help fixing this issue?
    Best regards,
    Stephan

    Hi Stephan,
    This is a bug in the unixODBC Driver Manager 2.3.0.  Essentially, you can only have one HDBC per HENV.  The mod_perl must be creating the connections upon the same HENV.
    The bug appears to be fixed in version 2.3.1 but we have not yet certified that out driver can work with 2.3.1.  See the 2.3.1 release notes at
    http://www.unixodbc.org/ where the last item says:
    "Driver version was not being held when a second connection was made to the driver"
    The Driver Manager would "forget" that we are an ODBC V3 driver and try intereacting with us as an ODBC V2 driver for the second connection (which fails).
    The workaround is to create a new HENV for each connection but I'm not sure if this is possible in mod_perl.

  • Segmentation fault when enabling replication with SQL API

    Hi,
    I've compiled BDB 5.3.21 on Ubuntu 11.04 (x86) with the following configure options:
    ../dist/configure enable-sql enable-sql_compat enable-debug enable-tcl --with-tcl=/usr/lib
    I was able to follow the Replication Usage Examples given in "Getting Started with the SQL APIs" to set up a set of replicated master/client databases.
    However, after I exited out of the dbsql session that started replication on the master database and re-opened the master database with dbsql, executing "pragma replication_initial_master=ON;" followed by "pragma replication=ON;" led to a segmentation fault. gdb showed that the segmentation fault occurred at:
    dbsql> pragma replication=ON;
    Program received signal SIGSEGV, Segmentation fault.
    0x0032d42b in __env_ref_get (dbenv=0x8056ad8, countp=0xbfffd498)
    at ../src/env/env_region.c:772
    772          renv = infop->primary;
    (gdb) list
    767          REGENV *renv;
    768          REGINFO *infop;
    769     
    770          env = dbenv->env;
    771          infop = env->reginfo;
    772          renv = infop->primary;
    773          *countp = renv->refcnt;
    774          return (0);
    775     }
    776     
    (gdb)
    Does anybody know of a solution to this or could this be a bug? Thanks in advance.
    P.S. here's a stack trace:
    (gdb) bt
    #0 0x0032d42b in __env_ref_get (dbenv=0x8056ad8, countp=0xbfffd498)
    at ../src/env/env_region.c:772
    #1 0x001786fc in hasDatabaseConnections (p=0x8056708)
    at ../lang/sql/generated/sqlite3.c:44420
    #2 0x00178a11 in bdbsqlPragmaStartReplication (pParse=0x80648e0,
    pDb=0x80561cc) at ../lang/sql/generated/sqlite3.c:44533
    #3 0x001797f5 in bdbsqlPragma (pParse=0x80648e0,
    zLeft=0x8062e20 "replication", zRight=0x8062dc0 "ON", iDb=0)
    at ../lang/sql/generated/sqlite3.c:44812
    #4 0x001c215d in sqlite3Pragma (pParse=0x80648e0, pId1=0x8064b60,
    pId2=0x8064b70, pValue=0x8064b90, minusFlag=0)
    at ../lang/sql/generated/sqlite3.c:78941
    #5 0x001e5c83 in yy_reduce (yypParser=0x8064b20, yyruleno=256)
    at ../lang/sql/generated/sqlite3.c:96668
    #6 0x001e6761 in sqlite3Parser (yyp=0x8064b20, yymajor=1, yyminor=...,
    pParse=0x80648e0) at ../lang/sql/generated/sqlite3.c:97051
    #7 0x001e7537 in sqlite3RunParser (pParse=0x80648e0,
    zSql=0x80648b8 "pragma replication=ON;", pzErrMsg=0xbfffdba0)
    at ../lang/sql/generated/sqlite3.c:97877
    #8 0x001c730e in sqlite3Prepare (db=0x8056010,
    zSql=0x80648b8 "pragma replication=ON;", nBytes=-1, saveSqlFlag=1,
    ---Type <return> to continue, or q <return> to quit---
    pReprepare=0x0, ppStmt=0xbfffdc8c, pzTail=0xbfffdc88)
    at ../lang/sql/generated/sqlite3.c:80736
    #9 0x001c7739 in sqlite3LockAndPrepare (db=0x8056010,
    zSql=0x80648b8 "pragma replication=ON;", nBytes=-1, saveSqlFlag=1,
    pOld=0x0, ppStmt=0xbfffdc8c, pzTail=0xbfffdc88)
    at ../lang/sql/generated/sqlite3.c:80828
    #10 0x001c7a5e in sqlite3_prepare_v2 (db=0x8056010,
    zSql=0x80648b8 "pragma replication=ON;", nBytes=-1, ppStmt=0xbfffdc8c,
    pzTail=0xbfffdc88) at ../lang/sql/generated/sqlite3.c:80903
    #11 0x0804baf6 in shell_exec (db=0x8056010,
    zSql=0x80648b8 "pragma replication=ON;",
    xCallback=0x804a3c4 <shell_callback>, pArg=0xbfffde14, pzErrMsg=0xbfffdcfc)
    at ../lang/sql/sqlite/src/shell.c:1092
    #12 0x0805030e in process_input (p=0xbfffde14, in=0x0)
    at ../lang/sql/sqlite/src/shell.c:2515
    #13 0x08051453 in main (argc=2, argv=0xbffff3f4)
    at ../lang/sql/sqlite/src/shell.c:2946
    -Irving
    Edited by: snowcrash on Jan 15, 2013 2:16 PM

    Thank you for reporting this. I have been able to reproduce this crash in-house.
    You need to specify the replication_initial_master and replication pragmas as part of initially creating your SQL database. The replication_initial_master pragma is not used or needed after the initial database creation at the initial master site. The replication=on pragma is a persistent setting that we remember internally the first time you specify it. This means that after specifying replication=on for the first time on a site, we will automatically restart replication for you in future dbsql sessions when we open the underlying Berkeley DB environment.
    This gives you a very simple workaround: don't respecify replication=on when you reenter dbsql.
    Of course, we shouldn't be crashing on an unnecessary pragma. I have added this to our list of fixes to consider for the future.
    Thanks,
    Paula Bingham
    Oracle

  • SQL Loader Segmentation Fault

    I'm trying to load a table (fixed length rows = 385 bytes, 78000k+ total bytes) and get a segmentation fault (core dump) as sqlldr is invoked. The log file is 0 bytes. I've tried changing the rows and buffers parms but no difference.
    Any thoughts?

    Oracle 9.2.0.4
    SunOS 5.8
    Please disregard this post - I used 'single quotes' instead of "doubles" in the script, so the login info was incorrect...

  • Svrmgrl segmentation fault!

    Hi everyone.
    I installed Oracle 8.0.5.1 Enterprise Edition on a RedHat 6.0 box
    with 2 Pentium III processors. The installation went smoothly but
    when I ran the svrmgrl the familiar message "segmentation fault
    (core dumped)" appears. The funny thing is that I have installed
    the same product on a SuSE 6.1 with a Pentium II 233Mhz and it
    runs OK.
    Any suggestions?
    null

    Albert Chan (guest) wrote:
    : Kostas Zorbadelos (guest) wrote:
    : : Hi everyone.
    : : I installed Oracle 8.0.5.1 Enterprise Edition on a RedHat 6.0
    : box
    : : with 2 Pentium III processors. The installation went smoothly
    : but
    : : when I ran the svrmgrl the familiar message "segmentation
    fault
    : : (core dumped)" appears. The funny thing is that I have
    : installed
    : : the same product on a SuSE 6.1 with a Pentium II 233Mhz and
    it
    : : runs OK.
    : : Any suggestions?
    : I have this problem too. I read the Oracle-HOWTO document and
    : recompiled and loaded the iBCS. But the problem still happen.
    My
    : PC running AMD K3 400Mhz (one CPU only), 64MRam
    : I also updated my kernel to 2.2.10 and updated the iBCS to 2.1
    : According to your situation, it seems to be a problem of Red
    Hat.
    : Is there anyone in Red Hat can help?
    I also experienced the same problem with RedHat 6.0 but I also
    noticed that I have untarred everything under /home/oracle in
    which there is a bin directory under which svrmgrl works and I
    can start and shutdown, run sql plus etc... It seems to be a
    problem with the re-linking.
    Julien
    null

  • Segmentation fault: 11

    I downloaded sqldeveloper for Mac OS X (I am running 10.8.3). When I typed "sqlplus" at the command line, it said "Segmentation fault: 11." What is happening? I'm a little surprised that nobody has had this issue before...

    Well, SQL*Plus isn't part of the SQL Developer download package, for Mac or any other OS...what is it you're trying to do?

  • Segment fault (Core dump)

    Hi
    when i run the following Pro*c file in Unix Environment im getting the SEGMENTATION FAULT(CORE DUMP) error. I used DBX to debug the code. I couldnt find out the proper reason for this error form the dbx output.
    This is the output i got from DBX.
    *signal SEGV (no mapping at the fault address) in _doprnt at 0xfb98736c*
    *0xfb98736c: _doprnt+0x2798:     stb     %o0, [%o1]*
    I did the showmemuse and show leaks, the output for this commands :
    (dbx) showmemuse
    Checking for memory use...
    Blocks in use report (blocks in use: 575 total size: 328086 bytes)
    Total % of Num of Avg Allocation call stack
    Size All Blocks Size
    ======= ==== ====== ====== =======================================
    134876 41% 30 4495 kpummapg < kghgex
    18098 5% 1 18098 lxldlbb < lxlinit < kpummpin < kpupin < sqgctx < sqgrct < sqlcmex < sqlcxt
    16552 5% 4 4138 kogmapg < kghgex
    16516 5% 4 4129 kogmapg < kogmasg
    12288 3% 6 2048 nlhtnsl < nlhthnew
    10350 3% 5 2070 calloc < nsbGetBFS
    9688 2% 1 9688 kouogini < kouoini < kpuinit0 < kpuinit < sqgctx < sqgrct < sqlcmex < sqlcxt
    8200 2% 1 8200 findbuf < doprnt < _fprintf < main
    8120 2% 4 2030 sqlrlc < sqlcopydfn
    8080 2% 1 8080 kpuinit0 < kpuinit < sqgctx < sqgrct < sqlcmex < sqlcxt < main
    7168 2% 1 7168 calloc < nsgbliuc < nsgblini < niotns < nigcall < osncon < kpuadef < upiini
    7168 2% 3 2389 lxldlod < lxdlobj
    5976 1% 4 1494 sqlrlc < sqlcopydfn
    4640 1% 1 4640 sqlrlc < sqldrl < sqlexp < sqlcmex < sqlcxt < get_pub_dates < main
    4640 1% 1 4640 sqlrlc < sqlbrl < sqlexp < sqlcmex < sqlcxt < get_pub_dates < main
    4128 1% 1 4128 calloc < nsgbliuc < nsgblini < niotns < nigcall < osncon < kpuadef < upiini
    4024 1% 1 4024 sqlrlc < sqlbrl < sqlexp < sqlcmex < sqlcxt < get_pub_dates < main
    3408 1% 1 3408 sqlrlc < sqldrl < sqlexp < sqlcmex < sqlcxt < get_pub_dates < main
    2452 <1% 8 306 calloc < nsmal
    2156 <1% 7 308 calloc < nlemfins
    (dbx) showleaks
    Checking for memory leaks...
    Actual leaks report (actual leaks: 1 total size: 30 bytes)
    Total Num of Leaked Allocation call stack
    Size Blocks Block
    Address
    ====== ====== ========== =======================================
    30 1 0x9c9c8 getOutFileName < main
    Possible leaks report (possible leaks: 0 total size: 0 bytes)
    i know its because of Pad pointer and something related to Pointer or array overflow. But i couldnt find out where exactly happening....
    Following is my Code, please help me to find out the error and what i need to change in my code:
    #ifndef ORA_PROC
    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    #include <time.h>
    #include <ctype.h>
    #include <math.h>
    #else
    typedef struct FILE FILE;
    #endif
    /*** Added by TCS Begins ***/
    char getOutFileName(char );
    char getEnvVar(char );
    void prepare_declare_oracle_cursors();
    void get_calendar_dates();
    void get_issues();
    void get_master_cusip_no();
    void get_run_date_finish();
    void get_payments();
    int get_pub_dates();
    void get_rights();
    void get_s_h_meetings();
    void get_special_codes();
    void get_agents();
    void get_currency();
    void get_payment_codes();
    void get_issue_codes();
    void get_standard_footnotes();
    void get_index_codes();
    void get_exchanges();
    void get_tax_codes();
    void get_tenders();
    int check_if_holiday(int );
    void sql_error(int , int , char *);
    void login_error();
    void no_pub_dates();
    void no_cal_dates();
    void no_finish_date();
    void save_payment_footnote(char , char [3],int , char );
    void save_issue_footnote(char );
    int print_footnotes();
    int print_foreign_tax();
    int get_partial_run_time();
    void save_rght_footnotes();
    int print_supplimental();
    int convert_tender_price(char *);
    void pad_s_h_meetings();
    int strip_out_codes(char *);
    char *getSqlLogonString();
    /**** TCS ADD Ends ****/
    EXEC SQL INCLUDE sqlca;
    EXEC SQL INCLUDE ddr_create_all_tapes.h;
    #define TRUE 1
    #define ORA_NOT_FOUND     ( sqlca.sqlcode == 1403 )
    /* The Definitions of SUCCESS and FAILURE were switched to test the
    idea that SUCCESS should be Zero and FAILURE should be Non-Zero
    #define SUCCESS 1
    #define FAILURE 0
    #define SUCCESS 0
    #define FAILURE -1
    #define SYSOK          0
    #define SYSERR          1
    #define DEBUGGING     0
    #define DEBUG_LEVEL     0
    /*     #define DEBUGGING     1
         #define DEBUG_LEVEL     2
    int          first_cal_date;
    int          footnote_count;
    int          foreign_count;
    int          last_cal_date;
    int          total_records;
    int          which_tape = 0;
    char          cusip_table_name[30];
    char          field_type_code;
    char          final_cusip_number[10];
    /**** char          footnote_text[300][300];
    char          foreign_text[60][100]; **** Commented by TCS as per the change request ****/
    /*** Added by TCS as per the change request ***/
    char          footnote_text[200][300];
    char          foreign_text[200][300];
    /*** TCS Add Ends ***/
    char          freq_type_code;
    char          init_cusip_number[10];
    char          rec_type_code;
    char          payment_where_clause[600];
    char          rights_where_clause[600];
    char          tenders_where_clause[600];
    char          s_h_meet_where_clause[600];
    char          last_run_time[18];
    char          supp_info_buffer[321];
    int          call_flag;
    int          tenders_flag;
    int          rights_flag;
    int          s_h_meet_flag;
    int          rght_foot_pos;
    double          hold_double;
    int          hold_int;
    char          hold_char[100];
    int i=0;
    FILE      *fp;
    FILE     pfp;          / this is used for a report file to correspond to
    the partial tape file */
    int main(int argc, char argv[]) / Modified by TCS */
         char          ddr_tape_name[100];
         char          ddr_partial_rpt[100];
         char          copyright_notice[100];
         long           file_position;
         char           *logname;
         /* READ IN PARAMETERS AND SET UP VARIABLES */
         memset (oracle_uid.arr, 0, sizeof(oracle_uid.arr));
    memset (oracle_pwd.arr, 0, sizeof(oracle_pwd.arr));
    strcpy (oracle_uid.arr, argv[1]);
    oracle_uid.len = strlen(oracle_uid.arr);
    strcpy (oracle_pwd.arr, argv[2]);
    oracle_pwd.len = strlen(oracle_pwd.arr);
    printf("Calling getSqlLogonString");
    logname = getSqlLogonString();
         which_tape = atoi(argv[1]);
         memset (last_run_time, 0, sizeof(last_run_time));
         if ( ( DEBUGGING ) && ( DEBUG_LEVEL > 1 ) )
         printf ("Oracle username: %s\n", oracle_uid.arr);
         printf ("Oracle password: %s\n", oracle_pwd.arr);
         printf ("Oracle username/password@database: %s\n", logname); /** Added by TCS **/
         printf ("Which Tape: %d\n", which_tape);
         hold_double = 0.0;
         hold_int = 0;
         memset (hold_char, ' ', sizeof(hold_char));
         EXEC SQL WHENEVER SQLERROR DO login_error();
    /*      EXEC SQL CONNECT :oracle_uid IDENTIFIED BY :oracle_pwd; */
         EXEC SQL CONNECT :logname ;
         printf ("Connected to ORACLE... \n");
         EXEC SQL WHENEVER SQLERROR continue;
         get_pub_dates();
         memset (ddr_tape_name, 0, sizeof(ddr_tape_name));
         memset (ddr_partial_rpt, 0, sizeof(ddr_partial_rpt));
         memset (cusip_table_name, 0, sizeof(cusip_table_name));
         memset (payment_where_clause, 0, sizeof(payment_where_clause));
         memset (rights_where_clause, 0, sizeof(rights_where_clause));
         memset (tenders_where_clause, 0, sizeof(tenders_where_clause));
         memset (s_h_meet_where_clause, 0, sizeof(s_h_meet_where_clause));
         /* SET UP VARIABLES BASED ON THE DIFFERENT FREQUENCY OF TAPE */
         switch (which_tape)
              case 0:
                   get_partial_run_time();
                   /*sprintf (ddr_tape_name,
                        "idb_tape$out:ddr_partial%1d.asc", p_count); ** Comented by TCS **/
                   sprintf (ddr_tape_name,"%s%1d.%s",getOutFileName("DDR_PARTIAL"),p_count,getEnvVar("DDR_PARTIAL_EXT_ASC")); /* Added by TCS */
                   strcpy (cusip_table_name,
                        "IDB.DDR_PARTIAL_TAPE_TABLE");
                   /*sprintf (ddr_partial_rpt,
                        "idb_tape$out:ddr_partial%1d.rpt", p_count); ** Commented by TCS **/
                   sprintf (ddr_partial_rpt,"%s%1d.%s",getOutFileName("DDR_PARTIAL"),p_count,getEnvVar("DDR_PARTIAL_EXT_RPT")); /* Added by TCS */
                   get_calendar_dates();
                   freq_type_code = '0';
                   sprintf (payment_where_clause,
    "AND PYMT_PUB_DATE IS NULL \
    AND ((PYMT_ADD_DATE_TIME >= TO_DATE('%15.15s', 'DD-MON-RR HH24:MI') \
    AND PYMT_ADD_DATE_TIME < TO_DATE('%15.15s', 'DD-MON-RR HH24:MI')) \
    OR (PYMT_UPD_DATE_TIME >= TO_DATE('%15.15s', 'DD-MON-RR HH24:MI') \
    AND PYMT_UPD_DATE_TIME < TO_DATE('%15.15s', 'DD-MON-RR HH24:MI')))",
    p_from.arr, p_to.arr, p_from.arr, p_to.arr);
                   sprintf (rights_where_clause,
    "AND RGHT_PUB_DATE IS NULL \
    AND ((RGHT_ADD_DATE_TIME >= TO_DATE('%15.15s', 'DD-MON-RR HH24:MI') \
    AND RGHT_ADD_DATE_TIME < TO_DATE('%15.15s', 'DD-MON-RR HH24:MI')) \
    OR (RGHT_UPD_DATE_TIME >= TO_DATE('%15.15s', 'DD-MON-RR HH24:MI') \
    AND RGHT_UPD_DATE_TIME < TO_DATE('%15.15s', 'DD-MON-RR HH24:MI')))",
    p_from.arr, p_to.arr, p_from.arr, p_to.arr);
                   sprintf (tenders_where_clause,
    "AND TNDR_PUB_DATE IS NULL \
    AND ((TNDR_ADD_DATE_TIME >= TO_DATE('%15.15s', 'DD-MON-RR HH24:MI') \
    AND TNDR_ADD_DATE_TIME < TO_DATE('%15.15s', 'DD-MON-RR HH24:MI')) \
    OR (TNDR_UPD_DATE_TIME >= TO_DATE('%15.15s', 'DD-MON-RR HH24:MI') \
    AND TNDR_UPD_DATE_TIME < TO_DATE('%15.15s', 'DD-MON-RR HH24:MI')))",
    p_from.arr, p_to.arr, p_from.arr, p_to.arr);
                   sprintf (s_h_meet_where_clause,
    "AND SMTG_PUB_DATE IS NULL \
    AND ((SMTG_ADD_DATE_TIME >= TO_DATE('%15.15s', 'DD-MON-RR HH24:MI') \
    AND SMTG_ADD_DATE_TIME < TO_DATE('%15.15s', 'DD-MON-RR HH24:MI')) \
    OR (SMTG_UPD_DATE_TIME >= TO_DATE('%15.15s', 'DD-MON-RR HH24:MI') \
    AND SMTG_UPD_DATE_TIME < TO_DATE('%15.15s', 'DD-MON-RR HH24:MI')))",
    p_from.arr, p_to.arr, p_from.arr, p_to.arr);
                   break;
              case 3:
    /*     PARTIAL 5     */
                   get_partial_run_time();
                   p_count = 5;
                   /**sprintf (ddr_tape_name,
                        "idb_tape$out:ddr_partial%1d.asc", p_count); ** Comented by TCS **/
                   sprintf (ddr_tape_name,"%s%1d.%s",getOutFileName("DDR_PARTIAL"),p_count,getEnvVar("DDR_PARTIAL_EXT_ASC")); /* Added by TCS */
    /* for testing only I am using seperate TABLE     */
                   /**strcpy (cusip_table_name,
                        "IDB.DDR_PARTIAL5_TAPE_TABLE"); ** Commented by TCS **/
                   strcpy (cusip_table_name,
                        "IDB.DDR_PARTIAL_TAPE_TABLE");
                   /*sprintf (ddr_partial_rpt,
                        "idb_tape$out:ddr_partial%1d.rpt", p_count); ** Commented by TCS **/
                   sprintf (ddr_tape_name,"%s%1d.%s",getOutFileName("DDR_PARTIAL"),p_count,getEnvVar("DDR_PARTIAL_EXT_RPT")); /* Added by TCS */
                   get_calendar_dates();
                   freq_type_code = '3';
                   sprintf (payment_where_clause,
    "AND ( (PYMT_ADD_DATE_TIME >= TO_DATE('%15.15s', 'DD-MON-RR HH24:MI')) \
    OR (PYMT_UPD_DATE_TIME >= TO_DATE('%15.15s', 'DD-MON-RR HH24:MI')))",
    p_to.arr, p_to.arr);
                   sprintf (rights_where_clause,
    "AND ((RGHT_ADD_DATE_TIME >= TO_DATE('%15.15s', 'DD-MON-RR HH24:MI')) \
    OR (RGHT_UPD_DATE_TIME >= TO_DATE('%15.15s', 'DD-MON-RR HH24:MI')))",
    p_to.arr, p_to.arr);
                   sprintf (tenders_where_clause,
    "AND ((TNDR_ADD_DATE_TIME >= TO_DATE('%15.15s', 'DD-MON-RR HH24:MI')) \
    OR (TNDR_UPD_DATE_TIME >= TO_DATE('%15.15s', 'DD-MON-RR HH24:MI')))",
    p_to.arr, p_to.arr);
                   sprintf (s_h_meet_where_clause,
    "AND ((SMTG_ADD_DATE_TIME >= TO_DATE('%15.15s', 'DD-MON-RR HH24:MI')) \
    OR (SMTG_UPD_DATE_TIME >= TO_DATE('%15.15s', 'DD-MON-RR HH24:MI')))",
    p_to.arr, p_to.arr);
                   break;
              case 1:
                   /**strcpy (ddr_tape_name,
                        "idb_tape$out:ddr_daily_tape.asc"); ** Commented by TCS **/
                   sprintf (ddr_tape_name,"%s",getOutFileName("DDR_DAILY_TAPE_ASC")); /* Added by TCS */
                   strcpy (cusip_table_name,
                        "IDB.DDR_DAILY_TAPE_TABLE");
                   get_calendar_dates();
                   freq_type_code = '1';
                   sprintf (payment_where_clause, "AND (PYMT_PUB_DATE \
    = TO_DATE('%s','DD-MON-RR') OR PYMT_PUB_DATE IS NULL)", pub_to_date.arr);
                   sprintf (rights_where_clause, "AND (RGHT_PUB_DATE \
    = TO_DATE('%s','DD-MON-RR') OR RGHT_PUB_DATE IS NULL)", pub_to_date.arr);
                   sprintf (tenders_where_clause, "AND (TNDR_PUB_DATE \
    = TO_DATE('%s','DD-MON-RR') OR TNDR_PUB_DATE IS NULL)", pub_to_date.arr);
                   sprintf (s_h_meet_where_clause, "AND (SMTG_PUB_DATE \
    = TO_DATE('%s','DD-MON-RR') OR SMTG_PUB_DATE IS NULL)", pub_to_date.arr);
                   break;
              case 5:
                   /*strcpy (ddr_tape_name,
                        "idb_tape$out:ddr_weekly_tape.asc"); ** Commented by TCS **/
                   sprintf (ddr_tape_name, "%s",getOutFileName("DDR_WEEKLY_TAPE_ASC")); /* Added by TCS */
                   strcpy (cusip_table_name,
                        "IDB.DDR_WEEKLY_TAPE_TABLE");
                   get_calendar_dates();
                   freq_type_code = '2';
                   sprintf (payment_where_clause, "AND (PYMT_PUB_DATE \
    BETWEEN to_date('%s','DD-MON-RR') AND to_date('%s','DD-MON-RR') OR PYMT_PUB_DATE IS NULL)",
    pub_from_date.arr, pub_to_date.arr);
                   sprintf (rights_where_clause, "AND (RGHT_PUB_DATE \
    BETWEEN to_date('%s','DD-MON-RR') AND to_date('%s','DD-MON-RR') OR RGHT_PUB_DATE IS NULL)",
    pub_from_date.arr, pub_to_date.arr);
                   sprintf (tenders_where_clause, "AND (TNDR_PUB_DATE \
    BETWEEN to_date('%s','DD-MON-RR') AND to_date('%s','DD-MON-RR') OR TNDR_PUB_DATE IS NULL)",
    pub_from_date.arr, pub_to_date.arr);
                   /* ram - 6/28/95 - reverted back to original criteria: */
                   /* include on weekly tape based on pub-date, regardless of */
                   /* whether in calendar or not */
                   sprintf (s_h_meet_where_clause, "AND (SMTG_PUB_DATE \
    BETWEEN to_date('%s','DD-MON-RR') AND to_date('%s','DD-MON-RR') OR SMTG_PUB_DATE IS NULL)",
    pub_from_date.arr, pub_to_date.arr);
                   break;
              case 12:
                   /* ram - 7/13/95          */
                   /* changed monthly "6" to "12" */
                   /*strcpy (ddr_tape_name,
                        "idb_tape$out:ddr_monthly_tape.asc"); ** Commented by TCS **/
                   sprintf (ddr_tape_name, "%s", getOutFileName("DDR_MONTHLY_TAPE_ASC")); /* Added by TCS */
                   strcpy (cusip_table_name,
                        "IDB.DDR_MONTHLY_TAPE_TABLE");
                   freq_type_code = '3';
                   sprintf (payment_where_clause, "AND (PYMT_PUB_DATE \
    BETWEEN to_date('%s','DD-MON-RR') AND to_date('%s','DD-MON-RR') OR PYMT_PUB_DATE IS NULL)",
    pub_from_date.arr, pub_to_date.arr);
                   sprintf (rights_where_clause, "AND (RGHT_PUB_DATE \
    BETWEEN to_date('%s','DD-MON-RR') AND to_date('%s','DD-MON-RR') OR RGHT_PUB_DATE IS NULL)",
    pub_from_date.arr, pub_to_date.arr);
                   sprintf (tenders_where_clause, "AND (TNDR_PUB_DATE \
    BETWEEN to_date('%s','DD-MON-RR') AND to_date('%s','DD-MON-RR') OR TNDR_PUB_DATE IS NULL)",
    pub_from_date.arr, pub_to_date.arr);
                   break;
              case 8:
                   /*strcpy (ddr_tape_name,
                        "idb_tape$out:ddr_quarterly_tape.asc");** Commented by TCS **/
                   sprintf (ddr_tape_name,"%s",getOutFileName("DDR_QUARTERLY_TAPE_ASC")); /* Added by TCS */
                   strcpy (cusip_table_name,
                        "IDB.DDR_QUARTERLY_TAPE_TABLE");
                   freq_type_code = '3';
                   sprintf (payment_where_clause, "AND (PYMT_PUB_DATE \
    BETWEEN to_date('%s','DD-MON-RR') AND to_date('%s','DD-MON-RR') OR PYMT_PUB_DATE IS NULL)",
    pub_from_date.arr, pub_to_date.arr);
                   sprintf (rights_where_clause, "AND (RGHT_PUB_DATE \
    BETWEEN to_date('%s','DD-MON-RR') AND to_date('%s','DD-MON-RR') OR RGHT_PUB_DATE IS NULL)",
    pub_from_date.arr, pub_to_date.arr);
                   sprintf (tenders_where_clause, "AND (A.TNDR_TENDER_DATE \
    = TO_DATE('%s','DD-MON-RR'))", pub_to_date.arr);               break;
              case 9:
                   /*strcpy (ddr_tape_name,
                        "idb_tape$out:ddr_annual_tape.asc"); ** Comented by TCS **/
                   sprintf (ddr_tape_name,"%s", getOutFileName("DDR_ANNUAL_TAPE_ASC")); /* Added by TCS */
                   strcpy (cusip_table_name,
                        "IDB.DDR_ANNUAL_TAPE_TABLE");
                   freq_type_code = '4';
                   sprintf (payment_where_clause, "AND (PYMT_PUB_DATE \
    BETWEEN to_date('%s','DD-MON-RR') AND to_date('%s','DD-MON-RR') \
    OR PYMT_PUB_DATE = TO_DATE('29-OCT-1929','DD-MON-YYYY'))",
    pub_from_date.arr, pub_to_date.arr);
                   sprintf (rights_where_clause, "AND (RGHT_PUB_DATE \
    BETWEEN to_date('%s','DD-MON-RR') AND to_date('%s','DD-MON-RR') OR RGHT_PUB_DATE IS NULL)",
    pub_from_date.arr, pub_to_date.arr);
                   sprintf (tenders_where_clause, "AND (A.TNDR_TENDER_DATE \
    = TO_DATE('%s','DD-MON-RR'))", pub_to_date.arr);               break;
              case 15:
                   /*strcpy (ddr_tape_name,
                        "idb_tape$out:ddr_general_tape.asc"); ** Commented by TCS **/
                   sprintf (ddr_tape_name,"%s", getOutFileName("DDR_GENERAL_TAPE_ASC")); /* Added by TCS */
                   strcpy (cusip_table_name,
                        "IDB.DDR_GENERAL_TAPE_TABLE");
                   freq_type_code = '3';
                   sprintf (payment_where_clause, "AND (PYMT_PUB_DATE \
    BETWEEN to_date('%s','DD-MON-RR') AND to_date('%s','DD-MON-RR') OR PYMT_PUB_DATE IS NULL)",
    pub_from_date.arr, pub_to_date.arr);
                   sprintf (rights_where_clause, "AND (RGHT_PUB_DATE \
    BETWEEN to_date('%s','DD-MON-RR') AND to_date('%s','DD-MON-RR') OR RGHT_PUB_DATE IS NULL)",
    pub_from_date.arr, pub_to_date.arr);
                   sprintf (tenders_where_clause, "AND (A.TNDR_TENDER_DATE \
    = TO_DATE('%s','DD-MON-RR'))", pub_to_date.arr);               break;
              default:
                   exit (printf ("Invalid tape option: %d\n", which_tape)); /*** %s changed by TCS to %d ***/
                   break;
         if ((fp = fopen(ddr_tape_name, "w+")) == NULL)
              exit (printf ("Unable to open asc <%s> file for write access\n",
                   ddr_tape_name));
    /*     GR. Partial 5
         if (which_tape == 0 || which_tape == 3 )
              if ((pfp = fopen(ddr_partial_rpt, "w+")) == NULL)
                   exit (printf ("Unable to open asc <%s> file \
    for write access\n", ddr_partial_rpt));
         /* WRITE THE HEADER RECORD ON THE TAPE */
         memset (copyright_notice, 0, sizeof(copyright_notice));
         sprintf (copyright_notice, "COPYRIGHT (c) %.4s STANDARD & POOR'S \
    CORPORATION. ALL RIGHTS RESERVED", year.arr);
         fprintf (fp, "%-80.80sDIVIDEND%8d%17.17s ",
    copyright_notice, control_date, run_date_start.arr);
         file_position = ftell(fp);
         fprintf (fp, "\n");
         total_records = 0;
         /* GET THE SPECIAL CATEGORY RECORDS */
         get_special_codes();
         /* SELECT FROM THE DRIVER TABLE TO GET ALL THE OTHER RECORDS */
         get_master_cusip_no();
         printf("After get_master_cusip_no()");
         get_run_date_finish();
         printf("After get_run_date_finish()");
         if ( DEBUGGING )
              printf ("initial cusip = %s\n", init_cusip_number);
              printf ("final cusip = %s\n", final_cusip_number);
              printf ("record type is %c\n", rec_type_code);
         /* WRITE THE TRAILER RECORD */
         fprintf (fp, "%8d%-17.17s%07d%-9.9s1%-9.9s%c\n", control_date,
    run_date_finish.arr, total_records, init_cusip_number , final_cusip_number,
    rec_type_code);
         /* re-wind and add to the header record ... */
         rewind(fp);
         fseek(fp, file_position - 33, 0);
         fprintf (fp, "%07d%-9.9s1%-9.9s%c", total_records, init_cusip_number,
    final_cusip_number, rec_type_code);
         fclose(fp);
    /*     GR Partial 5
         if (which_tape == 0 || which_tape == 3 )
              fclose(pfp);
         printf ("\nDONE: %07d%-9.9s1%-9.9s%c\n", total_records, init_cusip_number,
    final_cusip_number, rec_type_code);
    return (0); /*** Added by TCS ***/
    void prepare_declare_oracle_cursors() /* Modified by TCS */
         /* We'll us dynamic sql to get the appropriate where clause but use */
         /* a bind variable for the master cusip number. So we prepare and */
         /* declare get_issues, get_payments, get_tenders, get rights, and */
         /* get_s_h_meetings cursors only once, outside the driving loop. */
         EXEC SQL BEGIN DECLARE SECTION;
              /**** TCS Comment begins as per the change request ****
              VARCHAR          sql_stmt1[1500];*/     /* issues */
              /*VARCHAR          sql_stmt2[3000];     *//* payments */
              /*VARCHAR          sql_stmt3[500];          *//* tenders */
              /*VARCHAR          sql_stmt4[500];          *//* rights */
              /*VARCHAR          sql_stmt5[500];          *//* s_h_meetings */
              /**** TCS Add begins as per the change request ****/
              VARCHAR          sql_stmt1[2000];     /* issues */
              VARCHAR          sql_stmt2[4000];     /* payments */
              VARCHAR          sql_stmt3[1000];     /* tenders */
              VARCHAR          sql_stmt4[1000];     /* rights */
              VARCHAR          sql_stmt5[1000];     /* s_h_meetings */
              /**** TCS Add ends ****/
         EXEC SQL END DECLARE SECTION;
         /* prepare and declare the get_issues cursor */
         memset (sql_stmt1.arr, 0, sizeof(sql_stmt1.arr));
         sprintf (sql_stmt1.arr, "SELECT \
    A.ISSU_PAR_VALUE, \
    DECODE (A.ISSU_MARKET_SYMBOL||A.ISSU_NASDAQ,'OTCY','NASD', A.ISSU_MARKET_SYMBOL), \
    A.ISSU_C_RATE, A.ISSU_C_FREQ, A.ISSU_C_NEW_AMOUNT, A.ISSU_C_NEW_Q1, \
    A.ISSU_C_NEW_Q2, A.ISSU_C_NEW_Q3, A.ISSU_C_OLD_AMOUNT, A.ISSU_C_OLD_Q1, \
    A.ISSU_C_OLD_Q2, A.ISSU_C_OLD_Q3, A.ISSU_CURRENCY, \
    A.ISSU_UPD_HIS, A.ISSU_COMMENT, A.TAX_EXEMPT_FLAG,\
    B.SEC_TYPE_CODE, B.ACQ_BY_IND, B.ACQ_ISSUER_NO, \
    rtrim(substr(B.ACQ_ISSUER_DESCR,1,30)), \
    B.INDEX_CODE, B.TRFR_AGT_CODE, B.NY_AGT_CODE, B.TICKER_SYMBOL, \
    B.TICKER_SYMBOL2, \
    rtrim(substr(C.ISSR_DDR_ISSUER_DESCR,1,60)), \
    rtrim(substr(E.ISSUE_DESCR,1,30)), \
    rtrim(substr(D.ISSUER_DESCR1,1,30)), \
    F.TRFR_DAYS \
    FROM IDB.DDR_ISSUES A, IDB.DDR_ISSUES_2 B, IDB.DDR_ISSUERS C, \
    BLIS.CUSIP_ISSUERS D, BLIS.CUSIP_ISSUES E, IDB.DDR_TRANSFER F \
    WHERE A.ISSU_CUSIP_NO = :master_cusip_no \
    AND A.ISSU_CUSIP_NO = B.ISSU_CUSIP_NO(+) \
    AND SUBSTR(A.ISSU_CUSIP_NO, 1, 6) = C.ISSR_ISSUER_NO(+) \
    AND SUBSTR(A.ISSU_CUSIP_NO, 1, 6) = D.ISSUER_NO \
    AND A.ISSU_CUSIP_NO = E.CUSIP_NO \
    AND A.ISSU_TRANSFER_CODE = F.TRFR_TR_CD(+) ");
         sql_stmt1.len = strlen(sql_stmt1.arr);
         EXEC SQL PREPARE ISSUES FROM :sql_stmt1;
         if (sqlca.sqlcode)
              sql_error (SYSERR, sqlca.sqlcode,
                   "Error in preparing ISSUES");
         EXEC SQL DECLARE ISSUES_C CURSOR FOR ISSUES;
         if (sqlca.sqlcode)
              sql_error (SYSERR, sqlca.sqlcode,
                   "Error in declaring ISSUES");
         /* now the get_payments cursor */
         memset (sql_stmt2.arr, 0, sizeof(sql_stmt2.arr));
         sprintf (sql_stmt2.arr, "SELECT \
    a.PYMT_RP_DIV, \
    a.PYMT_RP_DEC, \
    a.PYMT_RP_EXD, \
    a.PYMT_RP_REC, \
    a.PYMT_RP_PAY, \
    a.PYMT_RP_DUE, \
    a.PYMT_RP_TAX, \
    a.PYMT_RP_ANN, \
    a.PYMT_PRP_DIV, \
    a.PYMT_PRP_DEC, \
    a.PYMT_PRP_EXD, \
    a.PYMT_PRP_REC, \
    a.PYMT_PRP_PAY, \
    a.PYMT_PRP_DUE, \
    a.PYMT_PRP_TAX, \
    a.PYMT_PRP_ANN, \
    NVL(a.PYMT_SEQ_NO,0), \
    TO_CHAR(a.PYMT_DECLARED, 'YYMMDD'), \
    TO_CHAR(a.PYMT_EX_DATE, 'YYMMDD'), \
    TO_CHAR(a.PYMT_STK_REC, 'YYMMDD'), \
    TO_CHAR(a.PYMT_TRANSFER_DATE, 'YYMMDD'), \
    TO_CHAR(a.PYMT_PAYABLE, 'YYMMDD'), \
    a.PYMT_CODES, \
    NVL(a.PYMT_CASH_DIVD,0.0), \
    NVL(b.ORDINARY_INCOME,0.0), \
    NVL(b.CAP_GAINS,0.0), \
    NVL(b.SHORT_TM_CAP_GAINS,0.0), \
    NVL(b.LONG_TM_CAP_GAINS,0.0), \
    NVL(b.RETURN_OF_CAPITAL,0.0), \
    b.STK_DIVD_IND, \
    NVL(a.PYMT_STK_DIVD,0), \
    b.FRAC_IN_CASH_STK_IND, \
    NVL(b.FRAC_IN_CASH_PRICE,0.0), \
    NVL(a.PYMT_SPLIT_NEW,0), \
    NVL(a.PYMT_SPLIT_OLD,0), \
    TO_CHAR(a.PYMT_DB_DATE, 'YYMMDD'), \
    NVL(b.ARREARS_PAID,0.0), \
    NVL(b.ARREARS_DUE,0.0), \
    b.SPINOFF_IND, \
    b.SPINOFF_ISSUE_NO, \
    b.SPINOFF_ISSUER_DESCR, \
    b.SPINOFF_ISSUE_DESCR, \
    NVL(b.TAX_CODE,0), \
    NVL(b.TAX_CODE_2,0), \
    NVL(b.OLD_SEQ_NO,0), \
    b.ORDINARY_INCOME_CODE, \
    b.CAP_GAINS_CODE, \
    b.SHORT_TM_CAP_GAINS_CODE, \
    b.LONG_TM_CAP_GAINS_CODE, \
    b.RETURN_OF_CAPITAL_CODE, \
    TO_CHAR(b.CALL_DATE, 'YYMMDD'), \
    NVL(b.CALL_PRICE,0.0), \
    b.CALL_PRICE_CURRENCY, \
    b.CALL_AGT_NO, \
    b.ACCRUED_DIVD_IND, \
    TO_CHAR(a.PYMT_DB_DATE, 'YYMMDD'), \
    a.PYMT_DB_TEXT, \
    a.PYMT_DVD_TEXT, \
    a.PYMT_YEAR, \
    TO_CHAR(a.PYMT_STK_REC, 'fmMon dd'), \
    TO_CHAR(a.PYMT_DB_DATE, 'fmMon dd'), \
    b.NY_CALL_AGT_NO, \
    NVL(b.FOREIGN_TAX_RATE, 0.0), \
    NVL(b.NET_RATE, 0.0), \
    NVL(b.FEE, 0.0), \
    NVL(b.COMMISSION, 0.0), \
    a.PYMT_CASH_DIVD_FNS, \
    a.PYMT_STK_DIVD_FNS, \
    a.PYMT_DECLARED_FNS, \
    a.PYMT_EX_DATE_FNS, \
    a.PYMT_STK_REC_FNS, \
    a.PYMT_PAYABLE_FNS, \
    a.PYMT_SPLIT_FNS, \
    NVL (TO_NUMBER (TO_CHAR(a.PYMT_PUB_DATE, 'YYYYMMDD')), 0), \
    NVL (TO_NUMBER (TO_CHAR(a.PYMT_TRANSFER_DATE, 'YYYYMMDD')), 0), \
    NVL (TO_NUMBER (TO_CHAR(a.PYMT_STK_REC, 'YYYYMMDD')), 0), \
    NVL (TO_NUMBER (TO_CHAR(a.PYMT_DB_DATE, 'YYYYMMDD')), 0) \
    FROM IDB.DDR_PAYMENTS A, IDB.DDR_PAYMENTS_2 B \
    WHERE A.PYMT_CUSIP_NO = :master_cusip_no \
    AND A.PYMT_CUSIP_NO = B.PYMT_CUSIP_NO (+) \
    AND A.PYMT_SEQ_NO = B.PYMT_SEQ_NO (+) \
    AND NVL(INSTR(A.PYMT_CODES,'CO'),0) NOT IN (1,3,5,7,9,11) ");
         strcat (sql_stmt2.arr, payment_where_clause);
         sql_stmt2.len = strlen(sql_stmt2.arr);
         EXEC SQL PREPARE PAYMENTS FROM :sql_stmt2;
         if (sqlca.sqlcode)
              sql_error (SYSERR, sqlca.sqlcode,
                   "Error in preparing PAYMENTS");
         EXEC SQL DECLARE PAYMENTS_C CURSOR FOR PAYMENTS;
         if (sqlca.sqlcode)
              sql_error (SYSERR, sqlca.sqlcode,
                   "Error in declaring PAYMENTS");
         /* now the get_tenders cursor */
         memset (sql_stmt3.arr, 0, sizeof(sql_stmt3.arr));
    /* FXL ADD SUBSTR to tndr_price_qual: substr(A.TNDR_PRICE_QUAL,1,14), 3/23/99,
    to to_number 3/29/99 */
         sprintf (sql_stmt3.arr, "SELECT \
    B.TNDR_AGT_NO, \
    B.NY_AGT_NO, \
    TO_CHAR(A.TNDR_TENDER_DATE, 'YYMMDD'), \
    A.TNDR_PRICE, \
    to_number(A.TNDR_PRICE_QUAL), \
    A.TNDR_TE_SIZE, \
    TNDR_TE_TEXT_1 \
    FROM IDB.DDR_TENDERS A, IDB.DDR_TENDERS_2 B \
    WHERE TNDR_CUSIP_NO = :master_cusip_no \
    AND TNDR_CUSIP_NO = TNDR_ISSUE_NO(+) \
    AND A.TNDR_TENDER_DATE = B.TNDR_TENDER_DATE(+) ");
         strcat (sql_stmt3.arr, tenders_where_clause);
         sql_stmt3.len = strlen(sql_stmt3.arr);
         EXEC SQL PREPARE TENDERS FROM :sql_stmt3;
         if (sqlca.sqlcode)
              sql_error (SYSERR, sqlca.sqlcode,
                   "Error in preparing TENDERS");
         EXEC SQL DECLARE TENDERS_C CURSOR FOR TENDERS;
         if (sqlca.sqlcode)
              sql_error (SYSERR, sqlca.sqlcode,
                   "Error in declaring TENDERS");
         /* now the get_rights cursor */
         memset (sql_stmt4.arr, 0, sizeof(sql_stmt4.arr));
    /* ADD TO_CHAR(A.RGHT_DB_DATE, 'YYMMDD') */
         sprintf (sql_stmt4.arr, "SELECT \
    B.NO_RIGHTS_ISSUED, \
    B.SHS_REQ_FOR_PURCH, \
    B.RGHTS_REQUIRED, \
    B.QTY_SHS_PURCHASED, \
    B.TYPE_SHS_ELIGIBLE, \
    B.NEW_SHS_CUSIP_NO, \
    B.NEW_CO_ISSUER_DESCR, \
    TO_CHAR(A.RGHT_RECORD, 'YYMMDD'), \
    TO_CHAR(A.RGHT_EX_DATE, 'YYMMDD'), \
    TO_CHAR(B.NYC_RECORD_DATE, 'YYMMDD'), \
    TO_CHAR(A.RGHT_EXPIRE, 'YYMMDD'), \
    TO_CHAR(A.RGHT_DB_DATE, 'YYMMDD'), \
    A.RGHT_PRICE, \
    NVL(A.RGHT_RECORD_FNS,' '), \
    NVL(A.RGHT_EXPIRE_FNS,' '), \
    NVL(A.RGHT_EX_DATE_FNS,' '), \
    NVL(A.RGHT_PRICE_FNS,' '), \
    NVL(A.RGHT_BASIS_FNS,' '), \
    A.RGHT_FOOTNOTE, \
    B.US_INELIGIBILITY_IND, \
    B.RGHT_TRFR_IND \
    FROM IDB.DDR_RIGHTS A, IDB.DDR_RIGHTS_2 B \
    WHERE RGHT_CUSIP_NO = :master_cusip_no \
    AND RGHT_CUSIP_NO = RGHT_ISSUE_NO(+) \
    AND A.RGHT_RECORD = B.RGHT_RECORD_DATE(+) ");
         strcat (sql_stmt4.arr, rights_where_clause);
         sql_stmt4.len = strlen(sql_stmt4.arr);
         EXEC SQL PREPARE RIGHTS FROM :sql_stmt4;
         if (sqlca.sqlcode)
              sql_error (SYSERR, sqlca.sqlcode,
                   "Error in preparing RIGHTS");
         EXEC SQL DECLARE RIGHTS_C CURSOR FOR RIGHTS;
         if (sqlca.sqlcode)
              sql_error (SYSERR, sqlca.sqlcode,
                   "Error in declaring RIGHTS");
         /* ram - added logic on 7/18/95 */
         /* for the standard footnotes cursor */
         EXEC SQL DECLARE STANDARD_FOOTNOTES_C CURSOR
         FOR
         SELECT SFTN_S_F_TEXT, SFTN_S_F_TYPE
         FROM IDB.DDR_STANDARD_FOOTNOTES
         WHERE SFTN_S_F_TYPE = :standard_footnote_type;
         if (sqlca.sqlcode)
              sql_error (SYSERR, sqlca.sqlcode,
                   "Error in declaring STANDARD_FOOTNOTES");
         /* now the issue footnotes cursor */
         EXEC SQL DECLARE ISSUE_FOOTNOTES_C CURSOR
         FOR
         SELECT FTNT_F_TEXT, FTNT_F_TYPE
         FROM IDB.DDR_FOOTNOTES
         WHERE FTNT_CUSIP_NO = :master_cusip_no
         AND FTNT_SYMBOL = :footnote_symbol
         AND FTNT_YEAR IS NULL;
         if (sqlca.sqlcode)
              sql_error (SYSERR, sqlca.sqlcode,
                   "Error in declaring ISSUE_FOOTNOTES");
         /* now the payment footnotes cursor */
         EXEC SQL DECLARE PAYMENT_FOOTNOTES_C CURSOR
         FOR
         SELECT FTNT_F_TEXT, FTNT_F_TYPE
         FROM IDB.DDR_FOOTNOTES
         WHERE FTNT_CUSIP_NO = :master_cusip_no
         AND FTNT_SYMBOL = :footnote_symbol
         AND FTNT_YEAR = :footnote_year;
         if (sqlca.sqlcode)
              sql_error (SYSERR, sqlca.sqlcode,
                   "Error in declaring PAYMENT_FOOTNOTES");
         /* now the get_s_h_meetings cursor */
         /* ONLY for certain tape types. */
    /*     GR PARTial 5
         if (which_tape == 0 || which_tape == 3 || which_tape == 1 || which_tape == 5)
              memset (sql_stmt5.arr, 0, sizeof(sql_stmt5.arr));
              /* ram - 6/15/95 - changed ORigunal to smtg */
              /* TO_CHAR(ORIGINAL_REC_DATE, 'YYMMDD'), \ */
              sprintf (sql_stmt5.arr, "SELECT \
    TO_CHAR(SMTG_MTG_DATE, 'YYMMDD'), \
    TO_CHAR(SMTG_REC_DATE, 'YYMMDD'), \
    SMTG_FOOTNOTE \
    FROM IDB.DDR_S_H_MEETINGS \
    WHERE SMTG_CUSIP_NO = :master_cusip_no ");
              strcat (sql_stmt5.arr, s_h_meet_where_clause);
              sql_stmt5.len = strlen(sql_stmt5.arr);
              EXEC SQL PREPARE S_H_MEET FROM :sql_stmt5;
              if (sqlca.sqlcode)
                   sql_error (SYSERR, sqlca.sqlcode,
                        "Error in preparing S_H_MEET");
              EXEC SQL DECLARE S_H_MEET_C CURSOR FOR S_H_MEET;
              if (sqlca.sqlcode)
                   sql_error (SYSERR, sqlca.sqlcode,
                        "Error in declaring S_H_MEET");
         } /* end of if (which_tape == 0 || which_tape == 1 || which_tape == 5) */
    /* replaced get_calendar_dates function with use of PLSQL - ram - 5/24/95 */
    void get_calendar_dates() /* Modified by TCS */
         /* put first and last calendar dates into global ints */
         /* first_cal_date and last_cal_date (YYYYMMDD) using */
         /* ddr package function get_business_days. */
         /* The package object ddr is owned by idb, so I'll */
         /* specify this, just in case accounts other than idb */
         /* run this code. (EXECUTE priviledge is granted to */
         /* "idb_user" role.) */
    EXEC SQL BEGIN DECLARE SECTION;
              int          cal_start;
              int          cal_end;
              int          return_val;
    EXEC SQL END DECLARE SECTION;
         /* initialize destination globals */

    You actually need to run it with "check -access"; memuse and leaks won't help with the crash, which happens because of illegal memory access. Hopefully, "check -access" will help you to locate the bad guy, but that's not panacea either.
    To be precise:
    - start dbx
    $ dbx <your app>
    - issue
    (dbx) check -access
    (dbx) run
    and wait for dbx to stop and report suspicious memory access.

  • Redhat 6.0 Webdb 2.2 Server 8.1.5 sqlplus core dump segmentation fault solution

    If anyone else is struggling with this installation, heres a workaround that
    Got things going for me.
    Redhat 6.0
    Oracle 8.1.5
    Webdb 2.2
    The database was up and working fine. Not as many problems as earlier versions but there was still much grief getting it to work. Save yourself some time, dont charge ahead like I did, read the installation notes.
    The installation of Webdb didnt go so well though. Sqlplus would core dump with segmentation fault when a connection to the local instance was attempted. I tried many things, install webdb to 8.1.5 , apply glibc patch, apply 8.0.5 patches to webdb install none of this worked. The workaround I finally found was to use the 8.1.5 listener and the old formatting of a listener.ora and tnsnames.ora file. (i.e. like 7.3.x). Sqlplus would then connect via tcp. Installation still had another problem I could never get past the sys password confirmation. I could connect from the command line with sqlplus s /nolog @passwd.sql sys/mypass@mytnsname but the installer just wouldnt work. An edit of the installation_dir ->webdb-2.2/owa40/owa40.vrf file did the trick. Hard code a location to a dummy pass.sys file.
    After many frustrating hours 160 or so - I think I finally have a working database and a working webdb web site. Hope this info might help others.
    Craig MacPherson
    null

    o Did you end up with 8.1.5 and WebDB2.2 in different Oracle_homes?
    Yes - product/8.1.5
    - product/8.0.5
    o What do you mean that you used the 8.1.5 listener? My database is 8.1.5 so the tnslistener I'm using is from the 8.1.5 install - not the 8.0.5 version.
    o Can you send a sample of the tnsnames.ora file that you used?
    Sure - make sure you set TNS_ADMIN
    # Filename: Listener.ora
    LISTENER =
    (ADDRESS_LIST =
    (ADDRESS= (PROTOCOL= TCP)(Host= 139.142.231.213)(Port= 1521))
    SID_LIST_LISTENER =
    (SID_LIST =
    (SID_DESC =
    (ORACLE_HOME= /oracle/product/8.1.5)
    (SID_NAME = cmac)
    STARTUP_WAIT_TIME_LISTENER = 0
    CONNECT_TIMEOUT_LISTENER = 10
    TRACE_LEVEL_LISTENER = OFF
    # Filename: Tnsnames.ora
    cmac =
    (DESCRIPTION =
    (ADDRESS = (PROTOCOL= TCP)(Host= 139.142.231.213)(Port= 1521))
    (CONNECT_DATA = (SID = cmac))
    test =
    (DESCRIPTION =
    (ADDRESS = (PROTOCOL= TCP)(Host= dmac)(Port= 1521))
    (CONNECT_DATA = (SID = cmac))
    null

  • X.column.getStringVal() throws "invalid column name", works in SQL*Plus.

    The subject sums it up pretty well... I have a query that works fine from SQL*Plus, but throws a JDBC exception with "ORA-00904 invalid column name" if I create a PreparedStatement from it and call executeQuery().
    The query itself is substantially similar to:
    SELECT foo, t.bar.getStringVal() from some_table t
    where "Some table" is an oracle 9i table, "foo" is a varchar2 column, and "bar" is a column that used to be varchar2 before I dropped and re-created the table with an xmltype column instead. "t" is an alias for the table that I didn't used to need (since it's only one table), but apparently is required for getStringVal() to work.
    ... And, of course, .getStringVal() is being used as a convenient way to treat technically LOB-like xmltype columns as big ersatz varchar2 columns so I won't have to screw around with stream i/o just to read a 4,001-byte value into a String ;-)
    I'm using the ojdbc14.jar thin driver and a fairly recent j2sdk (1.4.1_02, I think). I made a point of anihilating every copy of classes12.zip on my PC just to make sure it wasn't lurking in a classpath somewhere to screw things up.
    Strangely enough, it DOES work from within Netbeans' database explorer (itself connecting to the same Oracle database using the ojdbc14.jar thin driver).
    For the sake of being comprehensive, here's an example of the actual JDBC code that won't work:
    public ResultSet doQuery(Connection conn, int val) throws SQLException {
    String sql = "SELECT foo, t.bar.getStringVal() from some_table t where anothercolumn = ?";
    PreparedStatement sth = conn.prepareStatement(sql);
    sth.setInt(1, val);
    ResultSet rs = sth.executeQuery();
    // everything past this point is moot,
    // because sth.executeQuery throws an exception...
    // however, the ResultSet would ultimately be
    // returned to the method's caller, and
    // its values read using getString(fieldname)
    // including 'bar', the xmltype field...

    OK, this particular problem was my fault. The original table was on a server running 8i. To spare myself the grief of having to deal with CLOBs on 8i's terms and take advantage of 9i's new conveniences for handling them, I created a new table on our other server that's running 9i and updated the app's config settings to reflect the new server. Unfortunately, I forgot that the debugging/testing main() method had the URL of the old database hardcoded (it was written before the rest of the class). Ergo... it was still looking at the old database. Oops. (*blush*).

  • Cheese (3.4.2-1) Segmentation Fault

    Good day, everybody.
    I have a problem with Cheese. Today i bought a Webcam, then i tried to install cheese. Everything was ok until i launch the app. It says
    (cheese:1952): Gtk-WARNING **: Attempting to add a widget with type GtkImage to a GtkToggleButton, but as a GtkBin subclass a GtkToggleButton can only contain one widget at a time; it already contains a widget of type GtkLabel
    (cheese:1952): Gtk-WARNING **: Attempting to add a widget with type GtkImage to a GtkToggleButton, but as a GtkBin subclass a GtkToggleButton can only contain one widget at a time; it already contains a widget of type GtkLabel
    (cheese:1952): Gtk-WARNING **: Attempting to add a widget with type GtkImage to a GtkToggleButton, but as a GtkBin subclass a GtkToggleButton can only contain one widget at a time; it already contains a widget of type GtkLabel
    (cheese:1952): Gtk-WARNING **: Attempting to add a widget with type GtkImage to a GtkButton, but as a GtkBin subclass a GtkButton can only contain one widget at a time; it already contains a widget of type GtkLabel
    (cheese:1952): Gtk-WARNING **: Attempting to add a widget with type GtkGrid to a GtkToggleButton, but as a GtkBin subclass a GtkToggleButton can only contain one widget at a time; it already contains a widget of type GtkLabel
    (cheese:1952): Gtk-WARNING **: Attempting to add a widget with type GtkImage to a GtkButton, but as a GtkBin subclass a GtkButton can only contain one widget at a time; it already contains a widget of type GtkLabel
    ** (cheese:1952): CRITICAL **: cheese_camera_device_get_uuid: assertion `CHEESE_IS_CAMERA_DEVICE (device)' failed
    Segmentation fault
    Do you guys have any idea what could happen?
    Thank you so much.
    Ps. The camera is Microsoft Corp. LifeCam Cinema
    Last edited by japenagosc (2012-06-21 13:51:30)

    you really want to know about this bug?:D
    here is an explanation: https://plus.google.com/u/0/10487728728 … rHDgRNc1gi
    here is the bug: https://bugs.webkit.org/show_bug.cgi?id=89358
    our bug: https://bugs.archlinux.org/task/29809

  • Oracle SQL Developer 3.2, SQL*Plus COLUMN FORMAT bug

    SQL*Plus command COLUMN truncates output result in SQL Developer.
    Script in Worksheet:
    column nn format 999
    select level nn from dual connect by level<=10;The Run Script (F5) result contains only 8 lines in Script Output window:
    NN
    1
    2
    3
    4
    5
    6
    7
    8
    Changing column alias:
    select level nn2 from dual connect by level<=10NN2
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    10 rows selected
    The output can contain no data for more formatted columns.
    ===============================================================
    About
    Oracle SQL Developer 3.2.09
    Version 3.2.09
    Build MAIN-09.30
    Copyright © 2005, 2012 Oracle. All Rights Reserved.
    IDE Version: 11.1.1.4.37.59.48
    Product ID: oracle.sqldeveloper
    Product Version: 11.2.0.09.30
    Version
    Component     Version
    =========     =======
    Java(TM) Platform     1.7.0_02
    Oracle IDE     3.2.09.30
    Versioning Support     3.2.09.30

    sqldeveloper64-3.2.09.30-no-jre.zip.
    My jdk now is 1.7.07 x64, Windows 7 x64.
    C:\Java\jdk17\bin>java -version
    java version "1.7.0_07"
    Java(TM) SE Runtime Environment (build 1.7.0_07-b11)
    Java HotSpot(TM) 64-Bit Server VM (build 23.3-b01, mixed mode)
    Gary Graham wrote:Also, I don't understand what you mean by
    The output can contain no data for more formatted columns.
    Sript:
    col owner format a10
    col table_name format a20
    col column_name format a20
    col comments format a50
    select
       row_number() over(order by column_name) r11,   
       count(*) over() c11,
       owner ow,
       table_name tn,
       column_name cn,
       comments co
    from all_col_comments t
    where owner='SYS' and table_name='INDEX_STATS';
    select
       row_number() over(order by column_name) r,   
       count(*) over() c,
       owner,
       table_name,
       column_name,
       comments
    from all_col_comments t
    where owner='SYS' and table_name='INDEX_STATS';
    select 1 from dual;
    prompt abcThe output truncated after headers of second queryR11 C11 OW                             TN                             CN                             CO                                                                                                                                                        
      1  25 SYS                            INDEX_STATS                    BLKS_GETS_PER_ACCESS           Expected number of consistent mode block gets per row. This assumes that a row chosen at random from the table is being searched for using the index
      2  25 SYS                            INDEX_STATS                    BLOCKS                         blocks allocated to the segment                                                                                                                    
      3  25 SYS                            INDEX_STATS                    BR_BLKS                        number of branch blocks in the b-tree                                                     
      4  25 SYS                            INDEX_STATS                    BR_BLK_LEN                     useable space in a branch block                                                           
      5  25 SYS                            INDEX_STATS                    BR_ROWS                        number of branch rows                                                                     
      6  25 SYS                            INDEX_STATS                    BR_ROWS_LEN                    sum of the lengths of all the branch blocks in the b-tree                                 
      7  25 SYS                            INDEX_STATS                    BTREE_SPACE                    total space currently allocated in the b-tree                                             
      8  25 SYS                            INDEX_STATS                    DEL_LF_ROWS                    number of deleted leaf rows in the index                                                  
      9  25 SYS                            INDEX_STATS                    DEL_LF_ROWS_LEN                total length of all deleted rows in the index                                             
    10  25 SYS                            INDEX_STATS                    DISTINCT_KEYS                  number of distinct keys in the index                                                      
    11  25 SYS                            INDEX_STATS                    HEIGHT                         height of the b-tree                                                                      
    12  25 SYS                            INDEX_STATS                    LF_BLKS                        number of leaf blocks in the b-tree                                                       
    13  25 SYS                            INDEX_STATS                    LF_BLK_LEN                     useable space in a leaf block                                                             
    14  25 SYS                            INDEX_STATS                    LF_ROWS                        number of leaf rows (values in the index)                                                 
    15  25 SYS                            INDEX_STATS                    LF_ROWS_LEN                    sum of the lengths of all the leaf rows                                                   
    16  25 SYS                            INDEX_STATS                    MOST_REPEATED_KEY              how many times the most repeated key is repeated                                          
    17  25 SYS                            INDEX_STATS                    NAME                           name of the index                                                                         
    18  25 SYS                            INDEX_STATS                    OPT_CMPR_COUNT                 optimal prefix compression count for the index                                            
    19  25 SYS                            INDEX_STATS                    OPT_CMPR_PCTSAVE               percentage storage saving expected from optimal prefix compression                        
    20  25 SYS                            INDEX_STATS                    PARTITION_NAME                 name of the index partition, if partitioned                                               
    21  25 SYS                            INDEX_STATS                    PCT_USED                       percent of space allocated in the b-tree that is being used                               
    22  25 SYS                            INDEX_STATS                    PRE_ROWS                       number of prefix rows (values in the index)                                               
    23  25 SYS                            INDEX_STATS                    PRE_ROWS_LEN                   sum of lengths of all prefix rows                                                         
    24  25 SYS                            INDEX_STATS                    ROWS_PER_KEY                   average number of rows per distinct key                                                   
    25  25 SYS                            INDEX_STATS                    USED_SPACE                     total space that is currently being used in the b-tree                                    
    25 rows selected
    R C OWNER      TABLE_NAME           COLUMN_NAME          COMMENTS                                        
    - - ---------- -------------------- -------------------- --------------------------------------------------

  • Windows System Environment Variables in "Sql * plus"

    Can i use/reference Windows System Environment variables in "Sql * plus"?
    For example, i want to create sql-script to run in database server computer that asks variable "ORA_HOME" and uses this value to execute some sql/plsql sentences.
    Oracle 10g Personal, Windows 7.
    Edited by: CharlesRoos on 12.11.2010 17:28

    CharlesRoos wrote:
    Business problem:
    I have created 2 databases in my computer. Both databases needs tablespaces created by a script. Tablespaces' datafiles (.dbf files) names are same for both database. Both database has it's own directory where it holds datafiles at the moment. At the moment the datafiles for Database1 are in folder something like "%ORACLE_HOME%"\oradata\%databasename1%\*.dbf, and second database has its datafiles in other folder, somewhere ""%ORACLE_HOME%"\oradata\%databasename1%\*.dbf". I want now the script to create tablespace called "INDX" with same datafile name "indx1.dbf" into both database. So into both mentioned folder the file "indx1.dbf" must be created by script. I think the script should do following:
    1. get ORACLE_HOME.
    2. connect to database "databasename1"
    3. EXECUTE IMMEDIATE "Create TableSpace INDX....file=%ORACLE_HOME% || databasename1 || indx1.dbf"
    4. connect to database "databasename2"
    5. EXECUTE IMMEDIATE "Create TableSpace INDX....file=%ORACLE_HOME% || databasename2 || indx1.dbf"I don't have Oracle database near by anymore, so the code was pseudocode.
    I don't understand how to use ?-shortcut.OK, my first impression is "why does this even NEED to be scripted? Creation of new tablespaces is usually a one-off operation.
    But that aside how about this sqlplus command-line substitution variables. This example is in linux, but will work as well in Windows with the change of the way environment variables are referenced:
    *nix - echo $myvariable
    Windows - echo %myvariable%
    First, the sqlscript to create the TS. Note the use of the substitution variable "&1"
    {code}
    [oracle@vmlnx01 ~]$ cat cat makets.sql
    set echo on feedback on verify on trimsp on
    prompt &1
    CREATE SMALLFILE TABLESPACE EDSTEST
    DATAFILE '/ora01/oradata/&1/edstest.dbf'
    SIZE 5M
    REUSE
    AUTOEXTEND ON
    NEXT 1280K
    MAXSIZE 32767M
    LOGGING
    EXTENT MANAGEMENT LOCAL
    SEGMENT SPACE MANAGEMENT AUTO
    drop tablespace edstest
    including contents and datafiles
    exit
    {code}
    So, at the OS prompt: Notice that the @ is separated by a space, makeing it a command line parm instead of part of the connect string
    {code}
    [oracle@vmlnx01 ~]$ export myparm=vlnxora1
    [oracle@vmlnx01 ~]$ sqlplus system/pswd @makets $myparm
    SQL*Plus: Release 10.2.0.4.0 - Production on Fri Nov 12 13:18:05 2010
    Copyright (c) 1982, 2007, Oracle. All Rights Reserved.
    Connected to:
    Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - Production
    With the Partitioning, OLAP, Data Mining and Real Application Testing options
    SQL> prompt &1
    vlnxora1
    SQL> --
    SQL> CREATE SMALLFILE TABLESPACE EDSTEST
    2 DATAFILE '/ora01/oradata/&1/edstest.dbf'
    3 SIZE 5M
    4 REUSE
    5 AUTOEXTEND ON
    6 NEXT 1280K
    7 MAXSIZE 32767M
    8 LOGGING
    9 EXTENT MANAGEMENT LOCAL
    10 SEGMENT SPACE MANAGEMENT AUTO
    11 ;
    old 2: DATAFILE '/ora01/oradata/&1/edstest.dbf'
    new 2: DATAFILE '/ora01/oradata/vlnxora1/edstest.dbf'
    Tablespace created.
    SQL> --
    SQL> drop tablespace edstest
    2 including contents and datafiles
    3 ;
    Tablespace dropped.
    SQL> exit
    Disconnected from Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - Production
    With the Partitioning, OLAP, Data Mining and Real Application Testing options
    [oracle@vmlnx01 ~]$
    {code}

  • Cannot log in to SQL*Plus after initial login

    Hi all,
    I have an irritating problem that I am hoping that you can help with. I installed Oracle 10g on RedHat Linux ES 3. Everything seems to be working fine as long as I do not log out my oracle user. If I leave the user logged in everything works as expected. Once I log out, when I log back in I cannot access SQL*Plus normally.
    I enter: sqlplus my_user/my_password
    I get this:
    SQL*Plus: Release 10.2.0.1.0 - Production on Tue Sep 27 11:59:01 2005
    Copyright (c) 1982, 2005, Oracle. All rights reserved.
    ERROR:
    ORA-01034: ORACLE not available
    ORA-27123: unable to attach to shared memory segment
    Linux Error: 22: Invalid argument
    Additional information: 1
    Additional information: 360457
    But, if I enter it with the connection string: sqlplus my_user/my_password@ora1 then it works fine.
    I get the same behavior through VNC. As long as I never log out of VNC but just close the session, logging in to SQL*Plus works as normal.
    Any thoughts? My ORACLE_BASE, ORACLE_HOME, and ORACLE_SID seem to be correct.
    Thanks,
    Mike

    Hi,
    Kill the shared memory process and restart your database.
    Regards,
    Umair

  • Comments to be displayed in SQL*PLUS....

    Hi ,
    When i issue the following command in PL/SQL Developer(third-party tool) - as user SCOTT :
    SQL> desc user_extents;
    Name            Type              Nullable Default Comments                                           
    SEGMENT_NAME    VARCHAR2(81 BYTE) Y                Name of the segment associated with the extent     
    PARTITION_NAME  VARCHAR2(30 BYTE) Y                Partition/Subpartition Name, if any, of the segment
    SEGMENT_TYPE    VARCHAR2(18 BYTE) Y                Type of the segment                                
    TABLESPACE_NAME VARCHAR2(30 BYTE) Y                Name of the tablespace containing the extent       
    EXTENT_ID       NUMBER            Y                Extent number in the segment                       
    BYTES           NUMBER            Y                Size of the extent in bytes                        
    BLOCKS          NUMBER            Y                Size of the extent in ORACLE blocks    Whereas when i issue the same command in SQL*PLUS....
    SQL> desc user_extents;
    ¼íïìá                                     Null;    Ôýðïò
    SEGMENT_NAME                                       VARCHAR2(81)
    PARTITION_NAME                                     VARCHAR2(30)
    SEGMENT_TYPE                                       VARCHAR2(18)
    TABLESPACE_NAME                                    VARCHAR2(30)
    EXTENT_ID                                          NUMBER
    BYTES                                              NUMBER
    BLOCKS                                             NUMBERHow can i get the comments in SQL*PLUS as well...?????
    I use ORA10g v.2
    Thanks....
    Sim

    Plsql developer probably issue something like this in the background:
    select col.column_name,data_type,nullable,data_default,comments
    from all_tab_columns col,all_col_comments com
    where col.table_name=com.table_name
    and col.owner=com.owner
    and col.column_name=com.column_name
    and col.owner='SYS'
    and col.table_name = 'USER_EXTENTS'You could save similar code in script in your SQLPATH and pass the object that should be described via substitution variable.
    There are really [url http://www.adp-gmbh.ch/blog/2005/september/25.html]interesting approaches on the net regarding describe customization.
    Best regards
    Maxim

Maybe you are looking for

  • HT4621 how to i tell if my imac supports airplay mirroring

    Just downloaded and installed mountain lion yesterday.. one of the big features i bought it for.. airplay mirroring is no where to be found ! whats up? i have a imac bought dec 2010, and second generation apple tv with up to date software.

  • Will you help me with troubleshooting why my applications are not loading and why I'm getting so many fork failures?

    I have an iMac, 2.5Ghz i5, 12GB RAM, OSX 10.8.4. Things were working fine, but recently I had to install Java (I had to avert my eyes) because it was needed to use a certain web site. This seemed to be the beginning of my problems, but they were easi

  • How to define an itab based from a structure inside a class

    Hello Experts, How can I define an internal table based from a structure that is declared inside a class?I want to define it in the START-OF-SELECTION event. I'll create a scenario below: *       CLASS lcl_main DEFINITION CLASS lcl_main DEFINITION AB

  • BLS Read Timeout

    I am creating a transactions that joins results from three separate xMII documents (two SQL queries and one xMII document built from an external xml file).  The three documents each have five columns and approximately 4000 rows.  When I execute the t

  • Missing standard extractors

    Hi I am working on a SAP BW project, where we are implementing Project Portfolio Management based reporting. More specific we are reporting staffing data from xRPM. This runs on a separate system from the ECC system. Now, the PPM developers are integ