DB in WXP, SQL/PLUS in WXP too

Hello ORACLE'rs:
First, sorry if I'm posting in the wrong place [this is my first in this forum]; is some of the admins/moderators believe this thread should be moved, please go ahead.
Well, this is my question/issue:
We have our Oracle 9i DB in a Sun Solaris server at work; we basically use SQL PLUS or Oracle PLSQL Developer to program/edit our scripts.
I would like to use the same environment at home using WINDOWS XP; I want to develop at home, but I dont' have a Solaris server I can use, so I need to setup a DB in my WXP machine at home. Of course, I'll be using SQL PLUS to work on that DB at home.
What DB version should I download, take home, install and use?
Is there a place in the oracle OTN site or this forum that has info on this??
Thanks in advance
Alfonso Sanchez

Thanks GFPIKE, this seems to be just what I need:
Developers working on PHP, Java, .NET, XML, and Open Source applications
DBAs who need a free, starter database for training and deployment
Independent Software Vendors (ISVs) and hardware vendors who want a starter database to distribute free of charge
Educational institutions and students who need a free database for their curriculum
For now I just want it for my PL/SQL development.
"In this theather that I call my soul I always play the starring role" - THE POLICE
Alfonso Sanchez - www.imperial.edu

Similar Messages

  • Problem running SQL PLUS in Oracle 8i and 9i on Windows XP

    I've tried installing both Oracle 8.17 Personal Edition and also 9i in Windows XP Professional (each on a different occassion). I have run into the same problem each time. The installation itself goes fine in both cases, but when I run SQL PLUS, the Log On screen appears for 1-2 seconds then whole thing just closes automatically, so I can't ever access that application which is the only thing I need to work with. Any ideas on what's going wrong? Thanks.

    Patrick,
    Well a few things. Did you try TNSPING to see if the listener is up? If it's ok, can you connect with FREE toad? Download Oracle OEM and install that (the SQL net and sql plus portions). If you can't get tnsping to work, sqlplus isn't going too either. I don't know why the sqplus is actually shutting down, but I'm guessing the TNS NAMES entry isnt there (in the tnsnames.ora file). If the tnsnames entry is there then tnsping should work. Get tnsping to work first.
    Tyler.

  • Control-C in SQL*Plus on Windows

    Hi,
    I use the "command-line-looking" sqlplus.exe (not sqplplusw.exe) Client version 10.2.0.1.0 on my Win-XP PC.
    An annoying "feature" of this SQL*Plus, is that it closes when I press ctrl-c.
    For example, when a multiple-lines output is running in the window and I want to stop it (there is no "Cancel" button in this SQL*Plus),
    I have to be carefull not to press ctrl-c too many times.
    Or when I start an Anonymous PL/SQL block - I have no way to end editing without executing it, but to enter some nonsense text and execute to failure.
    Anyone knows how to avoid the window closure, or perform these 2 actions without using control-c ?
    Thanks a lot,
    S.

    instead of starting sqlplus.exe, start a CMD window, and then start sqlplus. if you ctrl-c too many times (or if it registers after the last of the output has been displayed) it will close the sqlplus executable. if you start in a cmd window, and sqlplus.exe closes, you're back to the cmd prompt, and all of you previous output/sql is still there.
    make a shortcut for sqlplus, and for it's "target", use the following:
    cmd.exe /k sqlplus

  • Connect via SQL*Plus taking more time in Oracle 11 than in 10

    Oracle Version
    Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production
    PL/SQL Release 11.2.0.3.0 - Production
    CORE    11.2.0.3.0      Production
    TNS for IBM/AIX RISC System/6000: Version 11.2.0.3.0 - Production
    NLSRTL Version 11.2.0.3.0 - Productioncurrently migrating from
    Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - 64bi
    PL/SQL Release 10.2.0.4.0 - Production
    CORE    10.2.0.4.0      Production
    TNS for IBM/AIX RISC System/6000: Version 10.2.0.4.0 - Productio
    NLSRTL Version 10.2.0.4.0 - ProductionOS is AIX 5.3 for Oracle 10 and AIX 6.1 for Oracle 11.
    We are currently in the process of migrating some applications from Oracle 10 to 11. Our admins have setup a new development system for us with an Oracle 11 instance. Regarding performance the new system behaves more or less the same than our old, e.g. when executing SQLs we notice hardly any performance differences and those we find are slightly in favour of the new system.
    But now we discovered that the time it takes to establish a database connection via SQL*Plus is longer on the Oracle 11 system. Running the following code
    sqlplus -s user/pw@database <<END
    quit
    ENDa thousand times takes ~60s under Oracle 10 but ~140s under Oracle 11. This may not seem much but we are running a test framework consisting of a bunch of shell scripts where several thousand connections are openend via SQL*Plus to execute some SQLs, so that even this small time difference results in rather huge difference in total runtime. The SQLs themself require roughly the same time in both databases, as already mentioned above they are in fact slightly faster in Oracle 11.
    To analyze the time difference I ran a trace for the connect with the following parameters in sqlnet.ora
    TRACE_LEVEL_CLIENT=4
    TRACE_UNIQUE_CLIENT=ONand found out that there is a time difference of about 70ms during the connect handshake:
    Oracle 10
    [22-MAR-2013 12:13:09:595] nscon: doing connect handshake...
    [22-MAR-2013 12:13:09:595] nscon: sending NSPTCN packet
    [22-MAR-2013 12:13:09:621] nscon: got NSPTRS packet
    [22-MAR-2013 12:13:09:621] nscon: sending NSPTCN packetOracle 11
    (1) [22-MAR-2013 12:15:26:812] nscon: doing connect handshake...
    (1) [22-MAR-2013 12:15:26:812] nscon: sending NSPTCN packet
    (1) [22-MAR-2013 12:15:26:906] nscon: got NSPTRS packet
    (1) [22-MAR-2013 12:15:26:906] nscon: sending NSPTCN packetUnder Oracle 10 there are 26ms between sending the NSPTCN packet and getting the NSPTRS packet, whereas under Oracle 11 this takes 94ms. I ran the trace again, this time with
    TRACE_LEVEL_CLIENT=16and got the following results for the critical interval:
    Oracle 10:
    [22-MAR-2013 13:17:37:638] nscon: sending NSPTCN packet
    [22-MAR-2013 13:17:37:638] nspsend: entry
    [22-MAR-2013 13:17:37:638] nspsend: plen=218, type=1
    [22-MAR-2013 13:17:37:638] nttwr: entry
    [22-MAR-2013 13:17:37:638] nttwr: socket 9 had bytes written=218
    [22-MAR-2013 13:17:37:638] nttwr: exit
    [22-MAR-2013 13:17:37:638] nspsend: packet dump
    <<packet dump removed>>
    [22-MAR-2013 13:17:37:638] nspsend: 218 bytes to transport
    [22-MAR-2013 13:17:37:638] nspsend: normal exit
    [22-MAR-2013 13:17:37:638] nscon: exit (0)
    [22-MAR-2013 13:17:37:638] nsdo: nsctxrnk=0
    [22-MAR-2013 13:17:37:638] nsdo: normal exit
    [22-MAR-2013 13:17:37:638] nsdo: entry
    [22-MAR-2013 13:17:37:638] nsdo: cid=0, opcode=68, *bl=512, *what=9, uflgs=0x0, cflgs=0x3
    [22-MAR-2013 13:17:37:638] nsdo: rank=64, nsctxrnk=0
    [22-MAR-2013 13:17:37:638] nsdo: nsctx: state=2, flg=0x4005, mvd=0
    [22-MAR-2013 13:17:37:638] nsdo: gtn=10, gtc=10, ptn=10, ptc=2011
    [22-MAR-2013 13:17:37:638] nscon: entry
    [22-MAR-2013 13:17:37:638] nscon: recving a packet
    [22-MAR-2013 13:17:37:638] nsprecv: entry
    [22-MAR-2013 13:17:37:638] nsprecv: reading from transport...
    [22-MAR-2013 13:17:37:638] nttrd: entry
    [22-MAR-2013 13:17:37:665] nttrd: socket 9 had bytes read=8
    [22-MAR-2013 13:17:37:665] nttrd: exit
    [22-MAR-2013 13:17:37:665] nsprecv: 8 bytes from transport
    [22-MAR-2013 13:17:37:665] nsprecv: tlen=8, plen=8, type=11
    [22-MAR-2013 13:17:37:665] nsprecv: packet dump
    [22-MAR-2013 13:17:37:665] nsprecv: 00 08 00 00 0B 00 00 00  |........|
    [22-MAR-2013 13:17:37:665] nsprecv: normal exit
    [22-MAR-2013 13:17:37:665] nscon: got NSPTRS packetOracle 11
    (1) [22-MAR-2013 13:33:40:504] nscon: sending NSPTCN packet
    (1) [22-MAR-2013 13:33:40:504] nspsend: entry
    (1) [22-MAR-2013 13:33:40:504] nspsend: plen=205, type=1
    (1) [22-MAR-2013 13:33:40:504] nttwr: entry
    (1) [22-MAR-2013 13:33:40:504] nttwr: socket 8 had bytes written=205
    (1) [22-MAR-2013 13:33:40:504] nttwr: exit
    (1) [22-MAR-2013 13:33:40:504] nspsend: packet dump
    <<packet dump removed>>
    (1) [22-MAR-2013 13:33:40:505] nspsend: 205 bytes to transport
    (1) [22-MAR-2013 13:33:40:505] nspsend: normal exit
    (1) [22-MAR-2013 13:33:40:505] nscon: exit (0)
    (1) [22-MAR-2013 13:33:40:505] snsbitts_ts: entry
    (1) [22-MAR-2013 13:33:40:505] snsbitts_ts: acquired the bit
    (1) [22-MAR-2013 13:33:40:505] snsbitts_ts: normal exit
    (1) [22-MAR-2013 13:33:40:505] nsdo: nsctxrnk=0
    (1) [22-MAR-2013 13:33:40:505] snsbitcl_ts: entry
    (1) [22-MAR-2013 13:33:40:505] snsbitcl_ts: normal exit
    (1) [22-MAR-2013 13:33:40:505] nsdo: normal exit
    (1) [22-MAR-2013 13:33:40:505] nsdo: entry
    (1) [22-MAR-2013 13:33:40:505] nsdo: cid=0, opcode=68, *bl=2048, *what=9, uflgs=0x0, cflgs=0x3
    (1) [22-MAR-2013 13:33:40:505] snsbitts_ts: entry
    (1) [22-MAR-2013 13:33:40:505] snsbitts_ts: acquired the bit
    (1) [22-MAR-2013 13:33:40:505] snsbitts_ts: normal exit
    (1) [22-MAR-2013 13:33:40:505] nsdo: rank=64, nsctxrnk=0
    (1) [22-MAR-2013 13:33:40:505] snsbitcl_ts: entry
    (1) [22-MAR-2013 13:33:40:505] snsbitcl_ts: normal exit
    (1) [22-MAR-2013 13:33:40:505] nsdo: nsctx: state=2, flg=0x4005, mvd=0
    (1) [22-MAR-2013 13:33:40:505] nsdo: gtn=10, gtc=10, ptn=10, ptc=8155
    (1) [22-MAR-2013 13:33:40:505] nscon: entry
    (1) [22-MAR-2013 13:33:40:505] nscon: recving a packet
    (1) [22-MAR-2013 13:33:40:505] nsprecv: entry
    (1) [22-MAR-2013 13:33:40:505] nsprecv: reading from transport...
    (1) [22-MAR-2013 13:33:40:505] nttrd: entry
    (1) [22-MAR-2013 13:33:40:618] nttrd: socket 8 had bytes read=8
    (1) [22-MAR-2013 13:33:40:618] nttrd: exit
    (1) [22-MAR-2013 13:33:40:618] nsprecv: 8 bytes from transport
    (1) [22-MAR-2013 13:33:40:618] nsprecv: tlen=8, plen=8, type=11
    (1) [22-MAR-2013 13:33:40:618] nsprecv: packet dump
    (1) [22-MAR-2013 13:33:40:618] nsprecv: 00 08 00 00 0B 00 00 00  |........|
    (1) [22-MAR-2013 13:33:40:618] nsprecv: normal exit
    (1) [22-MAR-2013 13:33:40:618] nscon: got NSPTRS packetAny ideas what could be the reason for this time difference? Something in our network configuration or something else?

    With local connections - I do not think a TCP packet send from an IP to the same IP, leaves the interface as an actual wire protocol/signal. If I'm correct, then running local connection tests will be mostly useless in checking the actual network infrastructure.
    Tests 3 and 4 should be showing the same connection times as the same physical network infrastructure is used - only the direction is reversed in the tests.
    I would assume that port settings on the switches and interface settings on the routers treat packets equally in both directions between 2 servers. But this could in part explain the problem if this is not the case. In a case of a router for example, the 1st test's ingress interface is the egress interface of the 2nd test (and vice versa). Configurations can differ substantially between interfaces on the same router. Likewise if there is a firewall - as different rule sets are applied in each test and these rule sets could differ.
    So I would not be too quick to state that this is definitely not a network problem. But I agree that based on the small percentage difference (assuming comparable tests), it does not look like a network issue.
    The next step is to determine what the delay is between the listener accepting the client connection, and the connection being serviced by a dedicated server process.
    This will require listener tracing - tracing the time from when the listener accepted the connection (and parsed the TNS connection string), to handing off the connection to the dedicated server process.
    As a comparison test, you can also test shared server connections. Dispatcher processes (of the db instance) register themselves with the listener. The shared server client hand off is thus done to an existing server process - no need for the Listener to make a kernel call to load and initialise an executable image.
    Shared connections are typically faster than dedicated connections in this respect.
    If there is a major time difference, then it means some kind of issue with the listener dealing with dedicated servers as oppose to dispatcher hand off's. As both connections would have had very similar network transit time - which means the connection time difference is related directly to dealing with a dedicated server connection request and hand off.
    You can also substitute the oracle executable with a wrapper - and troubleshoot the actual dedicated server startup. I've only done this with Oracle XE 10.2 though and with local IPC connections. Unsure how robust this will be for testing purposes via TCP using 11g.

  • GREATER THAN symbol appearing as &gt ; in SQL*Plus

    Version:11.2.0.3
    OS : RHEL 5.4
    We are a Software vedor firm.We have sent our SQL files to our client to execute. But the codes for various procedures and functions were failing
    because, in their SQL*Plus session (in Putty) the LESS THAN character < was appearing as &lt ; and GREATER THAN character > was appearing as &gt ;
    In the original code which we had sent to them has no problems with > or < characters.
    Original code
    Cursor feb_cur IS
      SELECT user_pwid
        FROM carton_hdr_dtl
       WHERE MODIFIED_DATE >= D_Last_Run_Date
       UNION
      SELECT user_pwid
        FROM carton_hdr_dtl_bkp
       WHERE (modified_date >= D_Last_Run_Date OR
              deleted_date >= D_Last_Run_Date);  But in the execution log file sent by our client, I can see &gt ; instead of > character.
    54   Cursor feb_cur IS
    55    SELECT user_pwid
    56        FROM carton_hdr_dtl
    57       WHERE MODIFIED_DATE &gt ;= D_Last_Run_Date
    58       UNION
    59    SELECT user_pwid
    60        FROM carton_hdr_dtl_bkp
    61       WHERE (modified_date &gt ;= D_Last_Run_Date OR
    62              deleted_date &gt;= D_Last_Run_Date);What are they doing wrong? They use putty. We use putty too but we don't have any issues.
    Edited by: Max on Dec 17, 2012 2:42 AM

    Thank you Blushadow, Nicosa for providing this clue.
    I checked with my client. They have put our scripts in Collabnet SVN version control and the implementor DBA will be provided the http URL .
    Apparently SVN is accessed using http protocol and yes you are right it is opened through a browser by typing an URL like below
    http://10.80.16.214:79839/svn/brcf/DBfiles/2012/WMHReleasel8/hrtb_pkt_wave.sqlFor most of the end users , the GREATER THAN character appears as > without any issues . For some users it appears as &gt ; . One potential cause is the difference in Internet Explorer version. They are currently looking into this.
    THANK YOU BLUSHADOW and NICOSA for shedding light on this.
    Hi Nicosa,
    A forum formatting question:
    How did you manage to get &gt_; (without the underscore) printed ? When I tried it the forums editor was converting it to > . This is why I placed a space/underscore between t and semi colon. Is there some escape character ?

  • Can i comment out lines of code in a .sql script file to be run in SQL PLUS

    Hi All,
    I have commented out part of the script, and when i ran the script (.sql) file in Sql*Plus
    I am getting some errors like
    SP2-0734: unknown command beginning
    how to avoid these errors?
    any help is appreciated
    Thanks
    R.R

    >
    select * from dual; -- me too!Nope, not this one...
    test@ORA10G>
    test@ORA10G> host type c:\test.sql
    select * from dual; -- me too!
    test@ORA10G>
    test@ORA10G> -- doesn't work
    test@ORA10G>
    test@ORA10G> @c:\test.sql
      2
    test@ORA10G>
    test@ORA10G> @c:\test.sql
      2  /
    select * from dual; -- me too!
    ERROR at line 1:
    ORA-00911: invalid character
    test@ORA10G>
    test@ORA10G> -- now this works...
    test@ORA10G> host type c:\test.sql
    select * from dual -- me too!
    test@ORA10G>
    test@ORA10G> @c:\test.sql
    D
    X
    test@ORA10G>
    test@ORA10G> -- and so does this...
    test@ORA10G> host type c:\test.sql
    select * from dual -- me too!
    test@ORA10G>
    test@ORA10G> @c:\test.sql
    D
    X
    test@ORA10G>
    test@ORA10G>pratz

  • Higher security if client is installed without SQL*PLUS?

    Hello,
    at work there are two installations for the Oracle client, one with and one without SQL*PLUS. Only DBAs and developers get the full installation. I can't see the additional security beside that a user cannot directly use SQL*PLUS to read data. Every user can run SQL Developer on his system so they can access the data anyway.
    Regards
    Marcus

    I can't see the additional security ..I agree. Too many people think blocking client tools means higher security. Security has to be done in the database server,not in the client tools.
    Werner

  • How to execute the parametered stored procedure in sql *plus ?

    how to execute the parametered stored procedure in sql *plus ?
    my storedprocedure format
    CREATE OR REPLACE PROCEDURE SMS_SELECTMPLOYEE
    (empDOB out date, empEmpName out varchar2)
    thanks & regards
    mk_mur

    Oh, sorry... making many reading-too-fast mistakes today...
    You can't declare date variables in SQL*Plus (seel help var), but you can cast to varchar2:
    TEST> CREATE OR REPLACE PROCEDURE SMS_SELECTMPLOYEE (empDOB out date, empEmpName out varchar2) IS
      2  d date := sysdate;
      3  e varchar2(10) := 'bob';
      4  begin
      5  empdob := d;
      6  empempname := e;
      7  end;
      8  /
    Procedure created.
    TEST> var d varchar2(30)
    TEST> var n varchar2(30)
    TEST> call  SMS_SELECTMPLOYEE(:d,:n);
    Call completed.
    TEST> print d n
    D
    11/07/06
    N
    bobYoann.

  • SQL Plus in Oracle 10g XE -

    How can i works in oracle 10g XE using the SQL Plus.
    When I try to connect, show-me and error.

    After installing XE … poke a little in the file system directory where you installed.
    In the “bin” directory you’ll find the “sqlplus” executable. In the “network/admin” directory you’ll find the “tnsnames” file with a service name by the name of “XE” configured.
    So, as long as you hit that tnsnames file and connect with an unlocked user you should be OK.
    sqlplus user/pass@XE
    Potential problem … you have some previous Oracle Client installation and you hit the “tnsnames” file from there … you could add the XE configuration there too. Or use environment variables to switch over to the XE installation.
    Try a “tnsping XE” and see what is says.

  • SQL Plus vs OCI

    Hi All
    Client Server
    Debian Lenny
    Instant client 10.2
    SQL Plus 10.2
    Latest Apache/PHP and OCI
    ORACLE Server
    Win 2003 + Oracle 8.x
    On the client server I can connect to the Oracle server through php and execute all kinds of queries that do not fetch a lot of data. But once the data being fetched is more than roughly 100kbyte nothing seems to happen anymore, a tcpdump only shows acks being sent from the client to the server.
    Example:
    select * from table where rownumber < x "x is 1 to 45" <-- This returns the result correctly in a second
    select * from table where rownumber < y "y is 46 and up" <-- This query simply keeps hanging, no time out nothing, if executed from command line it hands if executed in the browser it just keeps loading. If tcpdump is launched to monitor it, after the first two seconds all that happens is that the client sends acks to the server.
    However, if I use sqlplus 10.2 on the same Debian server, I can execute
    select * from table, and all 16000 rows are fetched and displayed in the sqlplus console.
    I really dont know what the problem is and what to look for here. Is the data being returned back to the client in SQL Plus in a differnet fashion than in OCI ? What could be the problem ? Can I use SQL plus through PHP ? I.e. in a similar fashion, like get rows as results and not some piped data ?
    Any hints are appreciated.
    Regards

    user638041 wrote:
    I did try out AdoDB instead of OCI, it works flawlessly so far. However, do you have any info on performance comparison between the two. And can I also use Oracle stored procedures in AdoDB ?Wrong questions.
    OCI stands for Oracle Call Interface - this is the interface that is used to interact with Oracle. Send SQLs. Executed stored procedures. Etc.
    Databases each have their own. SQL-Server and Sybase for example have an interface called dbLib.
    Using the database interface directly from a programming language is not easy as the interface is complex. So complex for example, that most C application development for Oracle will not use the OCI directly. Instead the Pro*C precompiler is used to change pseudo C/SQL code into C/OCI calls, before compiling the source with the C compiler.
    AdoDB is an interface that runs on top of OCI (or dbLib if you're using SQL-Server). So too is ODBC. Or BDE. Or OLEdb and so on.
    These are all higher level interfaces - making it easy for the programmer to use the underlying (complex) database interface like OCI (or dbLib).
    This high level interface cannot communicate directly with the database. It needs the underlying database call interface driver. In the case of AdoDB in PHP using Oracle - that still needs an Oracle client driver and that still uses the Oracle Call Interface/OCI.
    Using AdoDB does not mean that there is no longer an OCI. There is. Simply that now instead of you dealing with the complexities of OCI, AdoDB is doing that for you.

  • SQL Developer Script Output too limited for student - how to increase?

    I'm just a student trying to migrate from notepad and SQL Plus to using the SQL Developer for the comprehensive course project. Unfortunately, the script output is way too limited... it only reports a fourth of my last assignment's results - not enough to use in the project. How specifically can this be increased. I have version 1.1.0.21 running on Windows XP on a laptop with 512k memory.
    Thanks much for any/all assist. I don't want to go back to notepad!!

    Thank you for the advice, but I had tried that. My script is 305 lines counting blank lines and the SQL developer displays only about 35 lines of results corresponding to 58 lines of input. When I run the same script in SQL Plus in a console window using the @filename command, I get the entire output.
    My input and output follow:
    Input:
    spool project-test-out.txt
    prompt 'name'
    prompt 'Assignment X, parts 2b - 2h and 3a - 3b '
    create table Customer (
         CustID Integer,
    Name Char(10),
    State Char(2),
         primary key (CustID) );
    create view CustID_List (ID_Cust) as (select custID from Customer);
    create table Inventory (
    PartID Integer,
    Item Char(10),
    Cost Float,
    OnHand Integer,
         primary key (PartID) );
    create table Invoice (
    InvNum Integer,
    InvDate DATE,
    CustID Integer,
         primary key (InvNum),
    foreign key (CustID) references Customer);
    create table Invoice_Item (
    InvNum Integer,
    PartID Integer,
    Quantity Integer,
         foreign key (InvNum) references Invoice,
         foreign key (PartID) references Inventory);
    insert into customer values ( 101, 'Kerry', 'MA' );
    insert into customer values ( 102, 'Edwards', 'NC' );
    insert into customer values ( 103, 'Cheney', 'TX' );
    insert into customer values ( 104, 'Bush', 'TX' );
    insert into Inventory values ( 1, 'Boots ', 149.95, 6 );
    insert into Inventory values ( 2, 'Spurs ', 12.95, 24 );
    insert into Inventory values ( 3, 'Buckle ', 19.95, 4 );
    insert into Inventory values ( 4, 'Hat ', 60.00, 12 );
    insert into Inventory values ( 5, 'Holster', 75.00, 8 );
    insert into Inventory values ( 6, 'Saddle ', 350.00, 2 );
    prompt 'Part grad 3b - unsatisfying solution, limitations of Oracle 10g Express'
    prompt 'After many trials, found oracle discussion on web stating that'
    prompt 'Oracle 9 does not allow subqueries in the trigger WHEN clause.'
    prompt 'What a pain. Thus the solution here has become rather inelegant.'
    prompt 'The trigger and following select statement are byproducts of various'
    prompt 'simplification attempts, none of which worked.'
    select ID_Cust from custID_List;
    create trigger Invoice_CustID_CK before insert on Invoice
         REFERENCING NEW AS newCustID
         FOR EACH ROW
         BEGIN
              if (:newCustID.CustID = 205 )
    --     {{want line below but it generates error of: subquery not allowed in }}
    -- {{this context }}
    --          if (:newCustID.CustID NOT IN
    --               (Select ID_Cust from CustID_List))
              then :newCustID.CustID := NULL;
              end if;
         END;
    run;
    show errors trigger Invoice_CustID_CK;
    insert into invoice values ( 201, '01-Aug-2006', 101 );
    insert into invoice values ( 202, '02-Sep-2006', 101 );
    insert into invoice values ( 203, '05-Oct-2006', 103 );
    insert into invoice values ( 204, '07-Oct-2006', 102 );
    insert into invoice values ( 205, '09-Oct-2006', 205 );
    insert into Invoice_Item values ( 201, 1, 1 );
    insert into Invoice_Item values ( 201, 2, 1 );
    insert into Invoice_Item values ( 202, 5, 2 );
    insert into Invoice_Item values ( 203, 1, 2 );
    insert into Invoice_Item values ( 203, 2, 2 );
    insert into Invoice_Item values ( 203, 3, 2 );
    insert into Invoice_Item values ( 203, 4, 2 );
    insert into Invoice_Item values ( 204, 4, 2 );
    insert into Invoice_Item values ( 204, 1, 1 );
    select * from invoice;
    select * from customer;
    select * from invoice_item;
    select * from inventory;
    prompt 'Preparation for part 2b - create view showing onhand and starting inventory'
    alter table inventory add (start_inventory integer);
    update inventory
    set start_inventory = onhand;
    create view inv_changes as
    select partid, sum(quantity) as sales_by_id
    from invoice_item
    group by partid;
    create table inventory_invoiced as
    select inventory.partid, item, cost, onhand, start_inventory, COALESCE (sales_by_id, 0) as sales_by_id_NZ
    from inventory left outer join inv_changes
    on inventory.partid = inv_changes.partid;
    select * from inventory_invoiced;
    update inventory_invoiced
    Set
    onhand = onhand - sales_by_id_NZ;
    select * from inventory_invoiced;
    prompt 'Part 2b - What item has the least on hand inventory after processing the invoices?'
    select item
    from inventory_invoiced
    where onhand = (select min(onhand) from inventory_invoiced);
    prompt 'Part 2c - How much does customer 101 owe?'
    create view cust101_orders as
    select distinct partID, quantity
    from invoice_item, invoice
    where invoice_item.invnum IN
    (select I.invnum from invoice I where I.custid = 101);
    select * from cust101_orders;
    select sum(quantity * cost) as cust101_bill
    from cust101_orders, inventory
    where cust101_orders.partID = inventory.partID;
    prompt 'Part 2d - Which customer has the biggest bill?'
    prompt ' desirable solution is to do part 2c as a general case '
    prompt ' using a stored function such that the custID is passed '
    prompt ' to the function. Unfortunately, neither function below '
    prompt ' compiles. First case trips on creating the view. Second'
    prompt ' case being arewrite without a view - ifit even works - '
    prompt ' trips on the complicated select'
    create or replace function ind_customer_bill
    (ind_customer_ID in integer)
    return Float
    IS ind_total_bill Float;
    begin
    create view cust_orders as
    select distinct partID, quantity
    from invoice_item.invnum IN
    (select I.invnum from invoice I where I.custid = ind_customer_ID);
    select sum(quantity * cost) into ind_total_bill
    from cust_orders, inventory
    where cust_orders.partid = inventory.partid;
    drop view cust_orders;
    return (ind_total_bill);
    end;
    show errors function ind_customer_bill;
    create or replace function ind_customer_bill
    (ind_customer_ID in integer)
    return Float
    IS ind_total_bill Float;
    begin
    select sum(quantity * cost) into ind_total_bill
    from inventory, (select distinct partID as interim_partID, quantity
              from invoice_item.invnum IN
              (select I.invnum from invoice I where I.custid = ind_customer_ID))
    where interim_partID = inventory.partid;
    return (ind_total_bill);
    end;
    show errors function ind_customer_bill;
    Prompt 'part 2d continued using shameful brute force technique'
    select * from cust101_orders;
    create view cust101_due as
    select sum(quantity * cost) as cust101_bill
    from cust101_orders, inventory
    where cust101_orders.partID = inventory.partID;
    create view cust102_orders as
    select distinct partID, quantity
    from invoice_item, invoice
    where invoice_item.invnum IN
    (select I.invnum from invoice I where I.custid = 102);
    select * from cust102_orders;
    create view cust102_due as
    select sum(quantity * cost) as cust102_bill
    from cust102_orders, inventory
    where cust102_orders.partID = inventory.partID;
    create view cust103_orders as
    select distinct partID, quantity
    from invoice_item, invoice
    where invoice_item.invnum IN
    (select I.invnum from invoice I where I.custid = 103);
    select * from cust103_orders;
    create view cust103_due as
    select sum(quantity * cost) as cust103_bill
    from cust103_orders, inventory
    where cust103_orders.partID = inventory.partID;
    create view cust104_orders as
    select distinct partID, quantity
    from invoice_item, invoice
    where invoice_item.invnum IN
    (select I.invnum from invoice I where I.custid = 104);
    select * from cust104_orders;
    create view cust104_due as
    select sum(quantity * cost) as cust104_bill
    from cust104_orders, inventory
    where cust104_orders.partID = inventory.partID;
    prompt 'and the answer to part 2d - biggest bill is'
    select *
    from cust101_due, cust102_due, cust103_due, cust104_due;
    prompt 'Part 2e - What items were the most popular (most sold)'
    select item
    from inventory_invoiced
    where sales_by_id_NZ >= ANY (
    select max(sales_by_id_NZ) from inventory_invoiced);
    prompt 'Part 2f - What was the value of the original inventory'
    select sum (start_inventory * cost) as total_start_inventory
    from inventory_invoiced;
    prompt 'Part 2g - What was the value of the ending inventory'
    select sum (onhand * cost) as total_ending_inventory
    from inventory_invoiced;
    prompt 'Part 2h - What customers did not place an order'
    -- after some testing of the inner nest parts wherein the left outer join
    -- results in a CustID_List entry 104 having a null entry in
    -- invoice's CustID list.
    select Name
    from customer
    where custID IN (select ID_Cust
    from (select ID_Cust, CustID
    from CustID_List left outer join invoice on
    ID_Cust = CustID)
    where CUSTID IS NULL);
    prompt 'Part 3a - What items were not purchased by anyone'
    select item as unpurchased
    from inventory_invoiced
    where sales_by_id_nz = 0;
    prompt 'Part 3b - table modifications for invoices to have valid CustID'
    prompt ' -- see 3b section at top of file, notes and trigger '
    drop view cust101_due;
    drop view cust102_due;
    drop view cust103_due;
    drop view cust104_due;
    drop function ind_customer_bill;
    drop view cust101_orders;
    drop view cust102_orders;
    drop view cust103_orders;
    drop view cust104_orders;
    drop table inventory_invoiced;
    drop view inv_changes;
    drop view custID_List;
    drop table invoice_item;
    drop table invoice;
    drop table inventory;
    drop table customer;
    Output:
    'name'
    'Assignment X, parts 2b - 2h and 3a - 3b '
    create table succeeded.
    create view succeeded.
    create table succeeded.
    create table succeeded.
    create table succeeded.
    1 rows inserted
    1 rows inserted
    1 rows inserted
    1 rows inserted
    1 rows inserted
    1 rows inserted
    1 rows inserted
    1 rows inserted
    1 rows inserted
    1 rows inserted
    'Part grad 3b - unsatisfying solution, limitations of Oracle 10g Express'
    'After many trials, found oracle discussion on web stating that'
    'Oracle 9 does not allow subqueries in the trigger WHEN clause.'
    'What a pain. Thus the solution here has become rather inelegant.'
    'The trigger and following select statement are byproducts of various'
    'simplification attempts, none of which worked.'
    ID_CUST
    101
    102
    103
    104
    4 rows selected
    trigger Invoice_CustID_CK Compiled.

  • Error with Sql*Plus and Spatial

    When i create a new table with a column SDO_GEOMETRY (spatial), i insert a new field.
    When i do a simple select * from this table, i receive this error :
    SP2-0591: Unable to allocate dynamic space needed (37748736 bytes)
    I can't find any information about this error. I thougth it was an error of the configuration on the server, but i've found that SQL*PLUS use lot of virtual space on my PC when i query on 'Spatial table' and don't free this space. After three execution of my query, I receive an error NT 'Not enough virtual space'!
    What do i have to do ?
    Thanks

    Yeah, I am also encountering this problem too! Can anyone help?
    null

  • 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

  • ORA-01401 on execution SQL*Plus Copy command

    I looking solution for strange problem :
    I having two database created with AL32UTF8 character-set ; current application design are that we loading data throw SQL Loader and than transferring loaded data from one database to another using SQL*Plus copy command.
    Now , we having two tables , declared 100% identically , with respect to NLS and CHAR semantics (all varchar fields having CHAR inside length).
    At attempt to transfer data , with SQL*Plus Copy command I'm receiving next output :
    ERROR:
    ORA-01401: inserted value too large for column
    If I'm trying to transfer data via DB link , and this succeeds , or throw exp/imp utilities it also works .
    Database servers are 9.2 (i tryied with 9.2.0.6 or 9.2.0.8) ; client side were 9.2.0.8 , 10.1.0.5 ...
    On client side NLS_LANG variable are set to AMERICAN_AMERICA.AR8MSWIN1256 (we working on project who needs to support arabic language)
    Did anyone encountered same problem ? Any One ?

    it could be that the column of the table that you are trying to insert the data has a small length.

  • Connecting to SQL*PLUS

    Good afternoon. I have a strange issue when I try to connect to SQL*PLUS, Designer and Discoverer too, with an id other than SYSTEM or SYS. I have 10G database installed on my local PC, with the 10G client, Developer Suite with Discoverer and Designer. I connected in the command window with SYS to create the Designer repository and everything worked fine. I can CONNECT to SQL*PLUS to my local db with the SYSTEM id, but not with my own id. I can't connect to Designer repository with the REPOS_MANAGER id either. It looks as if it is trying to connect, but I get an hour glass and a NOT RESPONDING in the Windows task list. I have checked the id's by logging on to SQL*PLUS with SYSTEM id, and they are set up correctly. Any thoughts or suggestions? I can connect to my local database through GUI tools like TOAD or SQL*Tools using my own id. I would greatly appreciate any ideas you might have. Thanks. DLD

    Hi D Moran,
    You don't mention the platform and/or Oracle versions you work with, but generally speaking, did you check:
    - the tns service (windows) is started?
    - did you wait for a moment after the database service started, so that it had the time to "announce itself" to the tns service?
    - do you have only one tnsnames.ora file? if more then one: did you select the corresponding oracle home?
    etc...
    Maybe some of these checks help!
    Regards,
    Sabine

Maybe you are looking for

  • Oracle WebCenter Forms Recognition (WFR) 11.1.1.8.0 now available!

    Here's a quick write-up with some basic info: http://senasystems.blogspot.com/2013/11/oracle-webcenter-forms-recognition-wfr.html Happy learning! -ryan

  • Lightroom 6 - Zoom to Fill Frame - Slideshow

    I just started using Lightroom 6 on my Mac Pro.  In Slideshow, I've set the aspect ratio to 16:9 and clicked "zoom to fill frame".  When I play a slideshow in Preview, it looks fine.  However, when I click Play for full screen, the 16:9 aspect ratio

  • Can't read serial number

    I bought this ipod touch several years ago and bought the protection package with it. The ipod no longer is recognised, has stopped holding a charge and is pretty much useless at this point. I cannot read the serial number to look up info here. Does

  • Sales report from query generator

    Hi Experts, Im using query generator i had given selection criteria like, Posting date from and To, Profit centre, Numbering series name, query: SELECT T0.[DocNum], T0.[VatSum], T0.[DocTotal], T1.[PrcCode], T1.[PrcName], T1.[Balance] FROM OINV T0 , O

  • Where do I find the MEID number on my IPAD?

    Where do I find the MEID number on my IPAD?