About  SQL*Plus Limits

Hello,
Into the documentation SQL*Plus® User's Guide and Reference Release 10.2 - SQL*Plus Limits, the limit defined by substitution variable value length is set to 240.
However, it seems that's more 239, here a little test :
SQL> @e:\scripts\sql\lg.sql 123456789012345678901234567890123456789012345678901234567890123456789012
3456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012
34567890123456789012345678901234567890123456789012345678901234567890
string beginning "1234567890..." is too long. maximum size is 239 characters.To be more clear, that should be write 240 (non-inclusive) or 239.
Nicolas.

Thanks Nicolas. I'll pass this along to the SQL*Plus writer for correction.
Diana

Similar Messages

  • Cleaning screen at SQL*PLUS Worksheet

    Is there any simple command, macro or magical trick to clean the lower screen? (the one were you can not write and displays the data from your selects, prompts, ORA-errors, etc...)
    thanks

    Ok, I thought that clear button would clear only the upper screen, but if I click and focus with the mouse at the lower screen it will clean the lower screen.
    Thanks
    PD: Yes I was talking about SQL*PLUS Worksheet, not SQLPLUS

  • Why so spartan and user unfriendly SQL*Plus?

    Hi,
    I am relatively new to Oracle and therefore I would like to know why SQL*Plus command line utility is so spartan and user unfriendly.
    I am talking about SQL*Plus 10.2.0.1 included in Oracle 10g R2 for Linux x86. On many UNIXes platforms there are readline library and pager utility for output piping. Typical example of user-friendly command line utility is MySQL client. So, my question is:
    why is SQL*Plus binary different (not linked against readline library and doesn't provide a call to pager for output piping)?
    Thanks
    Albert

    I think there is no tool that will do eveything that you want.
    SQL*Plus doesn't format good. Cannot use it for writing packages(sort of). But, it's good for things like 'set autoprint on' to name one. And it's good for tracing.
    SQL Developer: I personally got a bug filed on this one, and since then, lost interest in it.
    PL/SQL Developer: Love this for the way it integrates Visual Sourcesafe, but, it sucks in quering tables with XMLTypes.
    SQL Navigator: Love this for running queries against nested tables. But, this thing sucks at formatting. Somehow , unlike PL/SQL Developer, it semi CHECKS if your code is gonna compile or not BEFORE it formats. I say, dude, I am gonna have to compile the procedure in the database anyway, just format the damn thing.
    Toad: Basically use it to use the session browser, may use it to Kill a session. ( I know I should be using the provided DBMS packages to do that.).
    If you ask me, I can live with SQL*Plus and PL/SQL developer. Pl/SQL Developer because of formatting capabilities and Sourcesafe integration- which is absolutely important for PL/SQL too).
    My two cents.
    Rahul.

  • Execute (or re-execute) commands in the SQL*Plus buffer

    I feel confused about sql plus / command. by defination, it Execute (or re-execute) commands in the SQL*Plus buffer. how do I know whether it execete or re-execute a command?
    for example, I run a select statement, seems I have to type / to get result. when I run a create table statement, it seems run twice with / and I got table exists error.
    Could someone clearify when should / be used and when not to use it.

    jz2 wrote:
    I feel confused about sql plus / command. by defination, it Execute (or re-execute) commands in the SQL*Plus buffer. how do I know whether it execete or re-execute a command?
    for example, I run a select statement, seems I have to type / to get result. when I run a create table statement, it seems run twice with / and I got table exists error.
    Could someone clearify when should / be used and when not to use it.I guess you are looking at things in the other way round. The / does what it says, it executes the command in the buffer. Don't think it "reexecutes". It simply executes the command. Be it already run or for the first time. For example,
    Running the code for 1st time.
    SQL> begin
      2  dbms_output.put_line('hi');
      3  end;
      4  .
    SQL> set serveroutput on
    SQL> /
    hi
    PL/SQL procedure successfully completed.
    Running again....
    SQL> l
      1  begin
      2  dbms_output.put_line('hi');
      3* end;
    SQL> /
    hi
    PL/SQL procedure successfully completed.
    SQL>So / simply executes. Now when you should use it and when not, that depends upon the kind of command you are trying to execute. Like you mentioned, for a select, it works by again giving the output. But for a DDL, its not the / which gives error but its the very nature of DDL that once issued, its committed so surely enough , next execution would throw an error only.
    HTH
    Aman....

  • Limitation in using sql *plus as a database for applications

    dear experts;
    I would like to know all, what are some of the major limitations in using sql*plus as your database in designing application besides the fact the user-interface is not friendly enough..and google is not producing relevant answers to my questions by the way unfortunately

    user13328581 wrote:
    I know about the drivers, I just need an IDE very similar to PL/SQL developer that will give me an opportunity to create the tables and their relationships and perform other DDL tasks that is why initially i was just wondering whether it is okay to utilize sql*plus for all that...SQLPlus can process any valid sql statement. Actually, it will pass anything that is not a sqlplus command to the database to be processed. The database will process any valid sql statement and pass the result back to the client to do with as the client sees fit - the client being sqlplus in this case.
    Which is exactly what SQL Developer does. You say you want something "very similar to PL/SQL developer ". Why not SQL Developer itself?
    It sounds like you continue to confuse the database with the client application. ("what are some of the major limitations in using sql*plus as your database ...", "I need an oracle database which can be integrated with visual studio ")
    The database has no user interface at all. It accepts connection requests from clients, processes sql statements (or pl/sql blocks) passed from those clients and returns results to those clients. Those clients could be sqlplus, SQL Developer, Toad, Visual Basic, Access, Excel, or any number of other products -- all connecting to the same database at the same time, to do whatever they are programmed to do. You want to develop an app in visual studio? Be my guest. You want to use SQL Developer to create the tables, etc, needed by the app? Go right ahead. They are not mutually exclusive. You want to use sqlplus as well? Go ahead, it's the same database, just a different client app.

  • A question about the impact of SQL*PLUS SERVEROUTPUT option on v$sql

    Hello everybody,
    SQL> SELECT * FROM v$version;
    BANNER
    Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
    PL/SQL Release 11.2.0.1.0 - Production
    CORE    11.2.0.1.0  Production
    TNS for Linux: Version 11.2.0.1.0 - Production
    NLSRTL Version 11.2.0.1.0 - Production
    SQL>
    OS : Fedora Core 17 (X86_64) Kernel 3.6.6-1.fc17.x86_64I would like to ask a question about the SQL*Plus SET SERVEROUTPUT ON/OFF option and its impact on queries on views such as v$sql and v$session. Here is the problem
    Actually I define three variables in SQL*Plus in order to store sid, serial# and prev_sql_id columns from v$session in order to be able to use them later, several times in different other queries, while I'm still working in the current session.
    So, here is how I proceed
    SET SERVEROUTPUT ON;  -- I often activate this option as the first line of almost all of my SQL-PL/SQL script files
    SET SQLBLANKLINES ON;
    VARIABLE mysid NUMBER
    VARIABLE myserial# NUMBER;
    VARIABLE saved_sql_id VARCHAR2(13);
    -- So first I store sid and serial# for the current session
    BEGIN
        SELECT sid, serial# INTO :mysid, :myserial#
        FROM v$session
        WHERE audsid = SYS_CONTEXT('UserEnv', 'SessionId');
    END;
    PL/SQL procedure successfully completed.
    -- Just check to see the result
    SQL> SELECT :mysid, :myserial# FROM DUAL;
        :MYSID :MYSERIAL#
           129   1067
    SQL> Now, let's say that I want to run the following query as the last SQL statement run within my current session
    SELECT * FROM employees WHERE salary >= 2800 AND ROWNUM <= 10;According to Oracle® Database Reference 11g Release 2 (11.2) description for v$session
    http://docs.oracle.com/cd/E11882_01/server.112/e25513/dynviews_3016.htm#REFRN30223]
    the column prev_sql_id includes the sql_id of the last sql statement executed for the given sid and serial# which in the case of my example, it will be the above mentioned SELECT query on the employees table. As a result, right after the SELECT statement on the employees table I run the following
    BEGIN
        SELECT prev_sql_id INTO :saved_sql_id
        FROM v$session
        WHERE sid = :mysid AND serial# = :myserial#;
    END;
    PL/SQL procedure successfully completed.
    SQL> SELECT :saved_sql_id FROM DUAL;
    :SAVED_SQL_ID
    9babjv8yq8ru3
    SQL> Having the value of sql_id, I'm supposed to find all information about cursor(s) for my SELECT statement and also its sql_text value in v$sql. Yet here is what I get when I query v$sql upon the stored sql_id
    SELECT child_number, sql_id, sql_text
    FROM v$sql
    WHERE sql_id = :saved_sql_id;
    CHILD_NUMBER   SQL_ID          SQL_TEXT
    0              9babjv8yq8ru3    BEGIN DBMS_OUTPUT.GET_LINES(:LINES, :NUMLINES); END;Therefore instead of
    SELECT * FROM employees WHERE salary >= 2800 AND ROWNUM <= 10;for the value of sql_text I get the following value
    BEGIN DBMS_OUTPUT.GET_LINES(:LINES, :NUMLINES);Which is not of course what I was expecting to find in v$sql for the given sql_id.
    After a bit googling I found the following thread on the OTN forum where it had been suggested (well I think maybe not exactly for the same problem) to turn off SERVEROUTPUT.
    Problem with dbms_xplan.display_cursor
    This was precisely what I did
    SET SERVEROUTPUT OFFafter that I repeated the whole procedure and this time everything worked pretty well as expected. I checked SQL*Plus documentation for SERVEROUTPUT
    and also v$session page, yet I didn't find anything indicating that SERVEROUTPUT should be switched off whenever views such as v$sql, v$session
    are queired. I don't really understand the link in terms of impact that one can have on the other or better to say rather, why there is an impact
    Could anyone kindly make some clarification?
    thanks in advance,
    Regards,
    Dariyoosh

    >
    and also v$session page, yet I didn't find anything indicating that SERVEROUTPUT should be switched off whenever views such as v$sql, v$session
    are queired. I don't really understand the link in terms of impact that one can have on the other or better to say rather, why there is an impact
    Hi Dariyoosh,
    SET SERVEROUTPUT ON has the effect of executing dbms_output.get_lines after each and every statement. Not only related to system view.
    Here below what Tom Kyte is explaining in this page:
    Now, sqlplus sees this functionality and says "hey, would not it be nice for me to dump this buffer to screen for the user?". So, they added the SQLPlus command "set serveroutput on" which does two things
    1) it tells SQLPLUS you would like it <b>to execute dbms_output.get_lines after each and every statement</b>. You would like it to do this network rounding after each call. You would like this extra overhead to take place (think of an install script with hundreds/thousands of statements to be executed -- perhaps, just perhaps you don't want this extra call after every call)
    2) SQLPLUS automatically calls the dbms_output API "enable" to turn on the buffering that happens in the package.Regards.
    Al

  • Question about setting column width in SQL*Plus using info retrieved w SQL

    Good morning,
    Is there a way to tell SQL*Plus to set the width of a column to the greatest width of the elements found in the column ? (as opposed to the default which is the width declared in the DDL)
    In other words, I'd like to do something functionally equivalent to this:
    COL <columname> format a[select max(length(<columnname>)) from <thetablethatcontainscolumname>]
    I'm doing the above manually in two steps
    1. select max(length(columnname)) from .....
    2. col columnname format a[resultofstep1]
    Is there a way of doing it in one step ?
    Thank you for your help,
    John.

    Hi Munky,
    >
    you should consider whther you are using the correct tool for the job, SQLplus isn't exactly ideal for doing presentation layer stuff
    >
    I'm not really doing presentation stuff, I asked because it would be very convenient for everyday stuff. I commonly query the tables that I am going to deal withm just to have a look at the column names and a few values, something like:
    select * from EMP where rownum <= 10; -- just to have a look at the table and some values
    when the table contains a wide column then the display gets all messed up. It would be nice to have an option or a mechanism to tell SQL*Plus to automatically use the width of the widest value, instead of having to determine the value and then manually set the column.
    thank you for your help, it's good to know that I didn't miss some trivial setting in the documentation that would do it ;)
    John.

  • Question about The SQL*Plus menu item

    The help doc says we can use SQL*Plus commands. So I open it from the SQL*Plus menu item under Tools. After I gave the installed SQL*Plus location and file name, SQL*Plus was opened by itself asking for a password. The question is are all SQL*Plus commands are supported/will be supported in Raptor? Thanks.
    ben

    See this.. http://www.oracle.com/technology/products/database/project_raptor/sql_worksheet_commands.html
    Not everything in plus is supported
    -kris

  • 2GB limits on SQL*PLUS output file

    Hi,
    We are running 64bits Oracle 8.1.7.4 and SQL*PLUS 8.1.7.0 on 64 bit SunOS. There is no limit on file size on the unix login and I am able to work with file over 2GB.
    However, I am not able the output over 2GB to text file from SQL*PLUS. The SQL*PLUS keeps running, but the file size fize does not incease after 2GB.
    Can anyone help me?
    Thanks,
    CK

    In SQL*Plus 9.0 the SQL*Plus I/O architecture was
    rewritten and many (all?) 32 bit operating systems that
    have 64bit I/O packages allow SPOOLing more than 2G.
    See enhancement request 697548.
    A dedicated OCI or Pro*C application may be faster for
    spooling large files, depending on the output formatting
    requirements.
    -- CJ

  • Numbering query results with a line number in SQL*Plus

    Doesn't it stand to reason that in SQL*Plus there would be a way to number each query results sequentially with line numbers starting at 1 to n -- something option like from a SET command? I'm not talking about linesize.

    There's a column rownum the engine adds into the result sets, just add it to the select list. Can use it to limit the result set (with some limitations) i.e.:
    select rownum, ... from ... where rownum <= 100
    Can't use ">=", that condition will never be met but a subset could be used:
    select * from ( select rownum as linenr, tab1.* from ... ) where linenr between 10 and 20

  • About SQL script

    I want to know the largest Sql scrpit that oracle permited.
    example:
    conn tiger
    if I write select * from dept where deptid = 1 or deptid = 2 .... along with 10000 conditions .I want to know whether or not oracle permitted????
    thankyou! &#35874;&#35874; --in chinese                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           

    or can you tell me how I can study about
    this question.If you're really qurious, have a look through sql*plus documentation for possible limitations there. Or why not try for yourself?

  • IF statement in SQL*Plus - how to do it

    Hi,
    In SQL*Plus script, I would like to keep conditional checking (IF statement) and proceed. For example, whatever is done in PL/SQL block below, want to do the same in SQL*Plus script, I know partly it can be done using VARIABLE keyword, conditional checking can be done using DECODE in SELECT statement, but I want to carry out a more complex requirement, hence I want to use IF statement somehow in SQL*Plus.
    Another question, how to do spooling in PL/SQL script, it can be done using UTL_FILE, any other option is there to achieve this.
    declare
    v_ind_count int;
    begin
    select count(1) into v_ind_count from user_indexes where index_name = 'index_object_name';
    IF v_ind_count > 0
    THEN
    dbms_output.put_line('index found');
    ELSE
    dbms_output.put_line('index does not exist');
    END IF;
    end;
    /

    Hello,
    SQL*PLUS has no scripting language. It can only execute SQL and PL/SQL scripts. There are some commands like SPOOL or SET but no commands for conditional statements. You should describe your requirements, maybe we can find a way.
    Or you can search the forum, maybe your question has already been answered
    [Google for SQL*PLUS + condition|https://www.google.de/search?q=site%3Aforums.oracle.com+"SQL*PLUS"+condition]
    # {message:id=4189517}
    # {message:id=4105290}
    how to do spooling in PL/SQL scriptFrom within PL/SQL you can use dbms_output, the spool has to be started by the calling SQL script when it is executed in SQL*PLUS. Or you can use utl_file, but then you can only write to a server directory, not into a client file. To give an advice we need more information about what you want to do.
    Regards
    Marcus

  • Apex 4.0 - Can see view data in SQL*Plus but no data in Object Browser

    Hi There,
    I have just started using Apex 4.o and migrated some apps. I have an issue with a report, but see the same issue with Object browser, which is easier to describe.
    I have a view:
    create or replace view V_PLJ_USERDEF_CODES (
             CODE_SET_ID,
             CODE_SET_CODE,
             CODE_SET_DESC,
             CODE_ID,
             CODE_SYS_CODE,
             CODE_VALUE,
             CODE_DESC,
             DISPLAY_SEQ,
             DISPLAY_FLAG,
             LANGUAGE_CODE) as
      select CS.CODE_SET_ID,
             CS.CODE_SET_CODE,
             CS.CODE_SET_DESC,
             C.CODE_ID,
             C.CODE_SYS_CODE,
             C.CODE_VALUE,
             C.CODE_DESC,
             C.DISPLAY_SEQ,
             C.DISPLAY_FLAG,
             C.LANGUAGE_CODE
        from PLJ_CODES C,
             PLJ_CODE_SETS CS
       where C.CODE_SET_ID         = CS.CODE_SET_ID
         and CS.CODE_SET_TYPE_CODE = SYS_CONTEXT('PLJUMPSTART','C_USERDEF_CODE_SET');This returns data in SQL*Plus, but no data in Object Browser OR report region based on this view.
    Workspace parses in the same schema as tested in SQL*Plus.
    If, in report, I swap out view, and use underlying table - no problem.
    Any ideas -
    thanks
    P

    Hi all,
    Thanks for getting back so promptly.
    It just seems weird to me, as tables are just fine, but not views.
    In the underlying schema:
    SQL> sho user
    USER is "ICSREPORTING"
    SQL> select count(*) from plj_codes;
      COUNT(*)
           107
    SQL> select count(*) from v_plj_userdef_codes;
      COUNT(*)
            29And in the APEX schema
    SQL> sho user
    USER is "APEX_040000"
    SQL> select count(*) from icsreporting.plj_codes;
    select count(*) from icsreporting.plj_codes
    ERROR at line 1:
    ORA-00942: table or view does not exist
    SQL> select count(*) from icsreporting.v_plj_userdef_codes;
    select count(*) from icsreporting.v_plj_userdef_codes
    ERROR at line 1:
    ORA-00942: table or view does not exist
    SQL>However, in SQL browser, I can see the data in PLJ_CODES but in V_PLJ_USERDEF_CODES, just the message "This view has no data". Indeed, it is like this for all views.
    I even explicitly granted access to APEX_040000 but no good.
    In fact, I would like to know more about how Apex gets access to do DML against the underlying parsing schema(s).
    This is a little frustrating though. It worked just fine in lots of apps in version 2.1 to 3.2
    Am I missing something
    paul
    p.s I knew there would be a question about the context, but I had already checked that. :)
    Edited by: PJ on Nov 19, 2010 4:09 AM

  • Print a report from sql*plus.

    Regards all
    Let me know whether it is possible to print a hard report rom sql*plus and how.
    waiting

    Let me know whether it is possible to print a hard report rom sql*plus Yes. SPOOL is a command to get SQL*Plus screen results to disk real-time.
    and how.A "report" is such a generic term, that you will have to get started with at least some reading :)
    http://otn.oracle.com/docs/products/oracle9i/doc_library/release2/server.920/a90842/toc.htm
    (search for: "How Can I Learn SQL*Plus")
    You may also address specific questions about the SQL*Plus product (that are not really Database SQL and/or PL/SQL related) via the [Technologies>Tools>iSQL*Plus] forum rather than here.
    waiting That's up to you! Dig in!
    Michael O'Neill
    Publisher of the PigiWiki
    clever-idea.com

  • SQL Plus command to print a report in Landscape format

    Hi,
    what is the SQL Plus command to print a report in Landscape format?

    841731 wrote:
    Hi,
    what is the SQL Plus command to print a report in Landscape format?SQLPlus doesn't print, and it doesn't know about 'landscape' vs. 'portrait' any more than it knows about fonts. the only 'formatting' it knows is line size, page size. And all it does with line size is know where to insert a CR/LF pair (windows) or a CR (*nix). The only thing it knows to do with page size is repeat column headers.
    The rest is up to whatever application you use to open the pure asciii text spool file.

Maybe you are looking for

  • Porting an iPhone app to a desktop app

    I am new to objective C and Cocoa, and yet have managed to develop a pretty complex app for the iPhone. Being lazy, I would like to also run this on a Mac Pro for instance, or other Mac computers/laptops. Is there a simple way for me to "port" my iPh

  • Problem with PDF Attachment (from GOS)

    Hi Experts, Below is the code in a ZFM. We are trying to get GOS attachments and the same are to be sent to SAP Inbox through Workitem. When we executed, the attachment is being shown but couldn't be opened.  It's throwing an error as 'The file has b

  • ITunes 10.4.1 freezing

    Hi there, I have a problem with the latest version of iTunes on an iMac (2.7Ghz Intel Core i5, 4Gb RAM), running Lion 10.7.1. Put simply, every time iTunes is opened, it very quickly locks up the whole computer for increasing periods of time. Every n

  • AQ/MGW Errors

    I posted this on a google oracle forum with no luck , so I will try here ... Can someone please tell me where I can get a complete list of Oracle Message Gateway error messages and thier meanings - The doco is limited and so is metalink. A couple of

  • Table where savepoints are saved

    Could anyone tell please tell me in which table of the database are all the savepoints saved? Can I also see the date when the savepoint was created? Thank you.