Tried several different ideas today and nothing worked to make a PL/SQL query run faster or detect when an item is missing appropriately. . I'm trying to write a statement that matches 2 fields, but then I have the third field that has multiple results and I need to be able to see if any of those results is a yes.
I have a several million record table with about 15 fields, but created a new smaller table to get only the 3 fields I needed, and removed dups (7000+ recs).
I have an output number repeated about 30K times. I have stock numbers and they are repeated in each of the output lines. I have another field, that's Yes, No or Maybe for something being on the shelf. I tried indexing all 3 columns
output stock # shelf -------------------------------------------------------------------------------- 1 x5323 Yes 1 p2323 No 2 x5323 No
I have a list of unique stock numbers that include output numbers that I want to check and see if they were on the shelf for that particular output run. I put those in a cursor. There are about 100 of them. The idea was to do a for loop thru the cursor, and if I didn't find the item in the smaller table I created, write that to a file. Problem is, detection isn't always correct and it takes forever to run.
I've tried to explain (to the non technical people) that this may be something that takes awhile, because I'm looking at 100 original stock numbers that have to go through the smaller table of 7000 records to find the match. I'm matching on output number for both the cursor and table, and stock number for cursor and table. Code below:
cursor cr_stocknums is select unique stocknums, outputnums from large_table.
I created table check_table, create table check_table as select outputnums, stocknums, shelf from large_table.
Then I tried things like exists, not exists, etc. in a for loop. Nothing worked.
for i in 1..tot_stock_nums loop select unique stocknum (tried stocknum alone, also tried select 1, in the where clause I tried where exists) into variable_name from check_table
Below is the sample code working fine in 10g and not working now in 11g.
CREATE OR REPLACE AND RESOLVE JAVA SOURCE NAMED "PSTest" AS import java.sql.SQLData; import java.sql.SQLException; import java.sql.SQLInput; import java.sql.SQLOutput; import java.util.List; [code]....
we got the below error: ORA-00932: inconsistent datatypes: expected an IN argument at position 1 that is an instance of an Oracle type convertible to an instance of a user defined Java class got an Oracle type that could not be converted to a java class
Current Oracle version is Oracle Database 10g Enterprise Edition Release 10.2.0.5.0 - 64bit and the version we are upgrading is Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit
I have two tables : oa_membership_dtl(in this created_by field is varchar2(200 byte) ,oa_partner_usr_dtl(in this table partner_userid is number(8,0) i need to do join on above fields.
I am using following two queries:
select * from oa_membership_dtl membership join oa_partner_usr_dtl partner_user on to_char(partner_user.partner_userid,'9999')=membership.created_by select * from oa_membership_dtl membership join oa_partner_usr_dtl partner_user on rtrim(ltrim(partner_user.partner_userid||' '))=rtrim(ltrim(membership.created_by))
by using first data is not fetched but 2nd is working fine , i am getting the matched records using 2nd query.
I am unable to configure EM(Oracle 11.2g) on Redhat Linux 5 Enterprise edition(32 bit). Environment variables are set to correct SID. If I try to run dbca the wizard does not display the Enterprise manager configuration screen. I have tried to create repository by using emca -config dbcontrol -db config.
But it throws exception that database instance is unavailable?
I tried to insert date in date column from another table date column. Below is SP ans execute procedure.
CREATE OR REPLACE PROCEDURE test( start_time Varchar ) AS BEGIN DBMS_OUTPUT.ENABLE(1000000); DBMS_OUTPUT.PUT_LINE(start_time); Insert into test_ora (report_date) (select start_time from
following is a query which i find difficult to understand why EXISTS is failing. There are two scenarios where if i block LINE 30 and unblock line 31 of the code then one record is returned.
I have an oracle package that i am using to search for a string in a blob entry. I compiled the package and the package body in one environment, it had no errors, when i execute, i get my results.I went ahead and created the same package and function in another environment and it fails by giving me the below error
ORA-06503: PL/SQL: Function returned without value ORA-06512: at "SYSTEM.IMPACTUS_PCODE", line 158 for sysadm
I have used this on other environments often and have never had an issue.
but unfortunatly the ESB that we are using uses a jms component which seems to only be able to take mono-consumer queue.So we have created our queue usuing the following
This therefore permits us to have a queue/queuetable which pushes data to a single consumer.The probleme comes when we try to add a table rule using the following command:
CODEORA-06512: on line 2 24039. 00000 - "Queue %s not created in queue table for multiple consumers" *Cause: Either an ADD_SUBSCRIBER, ALTER_SUBSCRIBER, or REMOVE_SUBSCRIBER procedure, or an ENQUEUE with a non-empty recipient list, was issued on a queue that was not created for multiple consumers. *Action: Create the queue in a queue table that was created for multiple consumers and retry the call.
We are able to create the capture rule without any problem but without the apply rule, nothing seems to end up into the queue table.AQ is not a viable solution since it is troublesome when it comes to deletes and mass updates.
A deadlock among DDL and parse locks is detected.This deadlock is usually due to user errors in the design of an application or from issuing a set of concurrent statements which can cause a deadlock. This should not be reported to Oracle Support. The following information may aid in finding the errors which cause the deadlock:
ORA-04020: deadlock detected while trying to lock object MV_LOTS
I'd like to talk about some interesting behaivor with Oracle RAC load balancer.We have Oracle RAC 11.1.0.6 - 2 nodes.
We noticed sometimes the number of sessions { select count(1) from v$session; } was not divided equally between nodes. Also load average was very different between node #1 and node #2.Now we define service explicitly.
srvctl add service -d MYORCL -s MYSERVICE -r MYORCL1,MYORCL2 srvctl config service -d MYORCL -a MYSERVICE PREF: MYORCL1 MYORCL2 AVAIL: TAF: NONE
After we change connection string of corresponding application(s) the spread will be more equal:
select service_name,inst_id, count(*) the_qty from gv$session where service_name = 'MYSERVICE' group by service_name, inst_id
Although it's not round robin algorithm, the distribution looks more equal. It seems explicitly defined service of Oracle RAC has better load balancing approach comparing to the default service (created with db by default).
But there is some downside with more 'equally' distributed load balancing. Consider a client program that is running the following SQL once a 5 minutes:
select ... from A inner join B on ... inner join C on ... inner join D on ...
where the tables B, C and D data is changing all the time.Once load balancing is distributed more 'equally', the query above will arrive to node #1 and to node #2 more equally. It will cause more interconnect traffic, because Oracle RAC will need to synchronize requested blocks all the time, with much high rate.
We are facing an surprising problem in oracle 10g database. Previously we are able to connect our Oracle 10g database using os authentication with "sqlplus / as sysdba" command. Last wednesday in our linux server maximum number of processes have overflowed and we need to increase the soft limit of our linux server. After that without restarting database every applications [OID 10g] are working fine. But, we are not able to connect with system using OS authentication. It is showing following.
$ export ORACLE_HOME=/a01/OID$ export ORACLE_SID=OID$ export PATH=$PATH:/a01/OID/bin$ sqlplus / as sysdbaSQL*Plus: Release 10.1.0.5.0 - Production on Tue Sep 10 06:45:08 2013Copyright (c) 1982, 2005, Oracle. All rights reserved.Connected to an idle instance.SQL>
Whereas I can connect with instance after providing @OID [SID]$ sqlplus sys@OID as sysdbaSQL*Plus: Release 10.1.0.5.0 - Production on Tue Sep 10 06:47:07 2013Copyright (c) 1982, 2005, Oracle. All rights reserved.Enter password:Connected to:Oracle Database 10g Enterprise Edition Release 10.1.0.5.0 - ProductionWith the Partitioning, OLAP and Data Mining optionsSQL> What am I missing. How can I connect with system with "sqlplus / as sysdba" command?
I have a query which returns a nested table as a result of split function. I used any method to unnest the data. But I couldn't. I try it with this query.Note: To run the following query I attached everything needed.
-- This query gives very strange results. SELECT * FROM ( SELECT
whenever i double-click on the Canvass node of Forms builder, it displays the "Working..." status on the lower left corner, then after a minute or so, the following message appears: -- "Oracle Forms Designer has encountered a problem and needs to close. We are sorry for the inconvenience.If you where in the middle of something, the information you were working on might be lost.
Send Error Report / Don't Send" -- after clicking on the Don't Send button, the builder will close down. i just installed oracle 10g (10.2.0.1.0) database and 6i developer which i downloaded from oracle website.
i want to use oracle translation builder to translate forms and reports from English into Arabic i run run the script SQLBLD and create new db connection an finally create a new project when am trying to import module i got the error NX-00201
Oracle UNION ALL performance issue: when I try to run below SQL query separately SQL part1 and SQL part2 it takes some seconds only but if I run together with group by and without group by it take much time.
SELECT AVG(date_completed-login_date),to_char(to_date(login_date), 'YYYY') as wYear FROM ( SELECT test.date_completed 'date_completed',sample.login_date 'login_date') FROM sample test where (some conditions) ) ---SQL part 1 UNION ALL
I have an application server on windows 2003 server. Now i have one Mac Book and i want to use the application in that. I have searched and find that i have to change in formsweb.cfg. I have made the changes according to that but my screen is coming blank only. I have change the formsweb.cfg like this
I'm trying to connect Oracle 11g database from Oracle 9i database, by creating dblink on Oracle 9i database. But my session got hang while i perform this. Here i'm giving the steps i followed on my both the database. Here Oracle 9i database is my source db and Oracle 11g is my target db.
Following steps/setting on Oralce 11g Database
SQL> SHOW PARAMETER SEC_CASE_SENSITIVE_LOGON
NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ sec_case_sensitive_logon boolean TRUE
SQL> alter user SSA identified by SSA;
User altered.
Password File recreted on Oracle 11g Database Server
DROP DATABASE LINK "SSA11G.SSA_DB1.WBTEA.COM"; CREATE DATABASE LINK "SSA11G.SSA_DB1.WBTEA.COM" CONNECT TO SSA IDENTIFIED BY SSA USING 'DEVDATA.DEV11G';
I'm looking for solutions to make real time replications from an Oracle 8i database.
For more details : - we have an existing database with Oracle 8i - we want to replicate this database: the replicated database will be used by a web application. - we need the replication to be in real-time (we wish to have the shortest lag)
For the moment i didn't find much information on the web and it seems that replication solutions for the version 8i are quiet limited.
Some more details :
- The responsible want imperatively that the web application work with a replicated database, without interacting directly with the original one. - An evolution of oracle should be done but within some years so were trying to find a solution rapidly with 8i.
I have been developing and oracle application therefore i have installed the oracle express edition 10g database software and the oracle developer 10g. I did some changes in sql*plus i mean i have changed the language(through 'nls_lang' to Arabic), i made a autonumber trigger, i changed the calender format (through 'alter_session...'), now all the changes are working fine from the oracle sql*plus but as i am running my form from form builder none of those changes are working.
i thought the oracle form and sql*plus don't have such link..i can add the tables i have created in sql*plus into the form.
I have an oracle application (Froms 6i) that is being accessed from a PC client running Windows 7 Professional. Whenever I try to access the the application I get a "Oracle Forms Runform has stopped working" error. I tried installing the runtime over and over again withn no use. This is not the first problem I encounter with "Windows 7- Oracle 6i" combination.
I used the Exchange Partition feature to swap segments between 2 tables- one Partitioned, and one Non-Partitioned. The exchange went well. However, all the data in the partitioned table has gone to the partition which stores the maxbound values.
/** actual table names changed due to client confidentiality issues */
-- Drop the 2 intermediate tables if they already exist
drop table ordered_inv_bkp cascade constraints ; drop table ordered_inv_t cascade constraints ; /**
1st create a Non-Partitioned Table from ORDERED_INV and then add the primary key and unique index(s):
*/ create table ordered_inv_bkp as select * from ordered_inv ; alter table ordered_inv_bkp add constraint ordinvb_pk primary key (ordinv_id) ; -- create unique index ordinv_scinv_uix on ordered_inv_bkp( SCP_ID ASC,
[code]....
-- Next, we have to create a partitioned table ORDERED_INV_T with a similar
-- structure as ORDERED_INV.
-- This is a bit tricky, and involves a pl/sql code
-- Add section to set default values for the intermediate table OL_ORDERED_INV_T
FOR crec_cols IN ( SELECT u.column_name ,u.nullable, u.data_default,u.table_name FROM USER_TAB_COLUMNS u WHERE u.table_name ='ORDERED_INV' AND u.data_default IS NOT NULL ) LOOP
[code]....
-- Next, use exchange partition for actual swipe
-- Between ordered_inv_t and ordered_inv_bkp
-- Analyze both tables : ordered_inv_t and ordered_inv_bkp
BEGIN DBMS_STATS.GATHER_TABLE_STATS(OWNNAME => 'HENRY220', TABNAME => 'ORDERED_INV_T'); DBMS_STATS.GATHER_TABLE_STATS(OWNNAME => 'HENRY220', TABNAME =>'ORDERED_INV_BKP'); END; / SET TIMING ON;
I have enabled SSO for my application. It was working in 4.1 version. I have upgraded to 4.2 now and the same code doesn't work now.I have created an authentication scheme where i check if a particular person is an employee based on a flag. If he is, then I return 1 to the authorization scheme i have created. This always returns 0 even if the flag is set to 'Y'. I have tried hard coding the user_id as well. It doesn't work.
I tried printing the :APP_USER but it does not give any output.
C:>sqlplus SQL*Plus: Release 10.1.0.2.0 - Production on Thu Oct 11 09:56:23 2012 Copyright (c) 1982, 2004, Oracle. All rights reserved.
Enter user-name: sys as sysdba Enter password:
Connected to: Oracle Database 10g Release 10.1.0.2.0 - Production SQL> startup nomount; ORA-01081: cannot start already-running ORACLE - shut it down first SQL> shutdown immediate; ORA-01109: database not open
[code]...
ERROR at line 1: ORA-01589: must use RESETLOGS or NORESETLOGS option for database open SQL>