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,
StephanHi 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 PMThank 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 -
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?
nullAlbert 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 -
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. -
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
nullo 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 -
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.30sqldeveloper64-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:28CharlesRoos 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,
MikeHi,
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....
SimPlsql 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.
-
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
-
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
-
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