SQL Plus doesn't RPAD

Hi All,
I'm running into a peculiar problem where I'm trying to pool an oracle table that has about 30 million records into a text file. I'm using Toad for Oracle version 10.5. When I spool my results, I'm rpading a column to 54 characters with blank spaces. When I run this spool as a script in Toad or using Toad's Quest Script Runner it pads it no problem but when I try doing it through the "Execute SQL via SQL Plus" command in Toad it doesn't do the rpading. I don't get it. Anyway, here's the script...just removed the name of my table and column names and replaced them with more generic names:
Spool on
set heading off
SET PAGESIZE 0
SET TRIMSPOOL ON
SET LINESIZE 100
set feedback off
set echo off
set termout off
Spool "C:\test.txt"
select
rpad(column1,54) as column1
from crg_input_final
where rownum <=100
order by
column2,
column1;
Spool off;
I always assumed that SQL is SQL...no matter if you run it in Toad or SQL Plus or wherever. Am I missing something?
Thanks

SET TRIMSPOOL ONthis will always remove trailing spaces from your spool file.
You could try:
set linesize 54
set trimspool off
spool "C:\test.txt"
select column1
from crg_input_final
where rownum <=100
order by
column2,
column1;
Spool off;if you need padding on the last column.

Similar Messages

  • Inserting digitized signature in SQL plus reports

    Our company has decided to use SQL plus for reporting needs. We have few reports with digitized signature printed at the bottom. Is this possible in SQL plus. Digitized signature should be in which format? Can somebody help me. If SQL plus doesn't support this, we mat need to look for alternate tools for reports.

    Actually, it looks like Forums do something strange to URLs pasted into posts. Sorry!
    The thread URL is Re: store/retrieve data in lang other than eng when CHARACTERSET is not UTF8

  • 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.

  • Checking Module to Prevent SQL Plus usage on Database

    I have a question regarding logon triggers checking against SYS_CONTEXT('USERENV', 'MODULE'). I created a logon trigger that looks for SYS_CONTEXT('USERENV', 'MODULE') = 'SQLPLUS.EXE'
    and if it matches then it only allows specified users to log in to the database. This code works but I am confused as to why when I check SYS_CONTEXT('USERENV', 'MODULE') after I login in
    shows SQL*Plus which clearly does not match my IF statement in my logon trigger.
    Second issue. If I rename sqlplus.exe to jeff.exe and run it I am abled to log in to the database as a non DBA user. But the module still shows as SQL*Plus. Why is this?
    Database Version: 11.2.0.2 64bit
    OS: Windows Server 2003 R2
    Client: 11.2.0.1
    /*********************Create Trigger******************************/
    CREATE OR REPLACE TRIGGER application_check_al
      after logon ON database 
    DECLARE
      l_username VARCHAR2(20);
      l_module   VARCHAR2(20);
    BEGIN
      l_username := SYS_CONTEXT('USERENV', 'SESSION_USER');
      l_module   := UPPER(SYS_CONTEXT('USERENV', 'MODULE'));
      IF l_module LIKE 'SQLPLUS.EXE' AND
         l_username NOT IN ('SYS', 'SYSTEM', 'DVOWNER', 'DVMGR') THEN
        raise_application_error(-20001, 'SQLPLUS ACCESS RESTRICTED FOR NON DBA USERS');
      END IF;
    END application_check_al;
    /*********************Run SQLPLUS******************************/
    SQL*Plus: Release 11.2.0.1.0 Production on Wed Mar 7 12:22:23 2012
    Copyright (c) 1982, 2010, Oracle.  All rights reserved.
    Enter user-name: jeffc@dev
    Enter password:
    ERROR:
    ORA-00604: error occurred at recursive SQL level 1
    ORA-20001: SQLPLUS ACCESS RESTRICTED FOR NON DBA USERS
    ORA-06512: at line 10
    Enter user-name: system@dev
    Enter password:
    Connected to:
    Oracle Database 11g Enterprise Edition Release 11.2.0.2.0 - 64bit Production
    With the Partitioning, OLAP, Data Mining, Oracle Database Vault
    and Real Application Testing options
    system@dev> select sys_context('USERENV','MODULE') from dual;
    SYS_CONTEXT('USERENV','MODULE')
    SQL*Plus
    SQL>

    jeff81 wrote:
    That doesn't make sense. Why am I able to log in when I renamed the exe? And why does the module still show as SQL*Plus?You are right - it does not make sense. The idea that Oracle might perhaps set module to SQLPLUS.EXE on executable start, and then re set from SQLPLUS.EXE to SQL*Plus after connect, or in glogin.sql, to ensure it is consistent across all operating system never crossed my mind.
    You might want to refer to Support Note "SQL*Plus Session/Module is Not Showing in V$SESSION" [ID 1312340.1] to see whether anything in there helps. I'm pretty sure http://docs.oracle.com/cd/E11882_01/server.112/e16604/ch_twelve040.htm#i2698573 doesn't help much, though.
    I'd certainly be raising it with Support as a potential security challenge, to get that potential hole closed.
    Edited by: Hans Forbrich on Mar 7, 2012 2:23 PM
    I wonder whether Oracle put that capability in there - if an untained SQLPLUS.EXE, it tells you that it is SQLPLUS.EXE, but if renamed it tells you 'SQL*Plus'? Specuklation, but it is one thing I might do to subtly raise the flag. Best bet - ask Support.
    Edited by: Hans Forbrich on Mar 7, 2012 2:29 PM

  • 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.

  • Concurrent manager encountered an error while running sql*plus for your concurrent request create internal order

    Hi
    We have a big problem, We can't create internal orders, when I run the CREATE INTERNAL ORDER, it finish with ERROR:
    Concurrent Manager encountered an error while running SQL*Plus for your concurrent request 134980682.
    Review your concurrent request log and/or report output file for more detailed information.
    this is the log:
    +---------------------------------------------------------------------------+
    Purchasing: Version : 12.0.0
    Copyright (c) 1979, 1999, Oracle Corporation. All rights reserved.
    POCISO module: Create Internal Orders
    +---------------------------------------------------------------------------+
    Current system time is 26-JUL-2013 09:21:09
    +---------------------------------------------------------------------------+
    +-----------------------------
    | Starting concurrent program execution...
    +-----------------------------
    +---------------------------------------------------------------------------+
    Start of log messages from FND_FILE
    +---------------------------------------------------------------------------+
    Begin create internal sales order
    Updating Req Headers
    14 Reqs selected for processing
    Top of Fetch Loop
    Source Operating Unit: 82
    Selecting Currency Code
    Currency Code : MXP
    Selecting Order Type
    Order Type ID:1001
    Selecting Price List from Order Type
    Deliver To Location Id: 196
    Inserting Header : 3908784
    Getting the customer id
    Getting the customer id: 15334
    Unhandled Exception : ORA-01403: no data found
    +---------------------------------------------------------------------------+
    End of log messages from FND_FILE
    +---------------------------------------------------------------------------+
    Concurrent Manager encountered an error while running SQL*Plus for your concurrent request 134980682.
    Review your concurrent request log and/or report output file for more detailed information.
    +---------------------------------------------------------------------------+
    Executing request completion options...
    Output file size:
    78
    Output is not being printed because:
    The print option has been disabled for this report.
    Finished executing request completion options.
    +---------------------------------------------------------------------------+
    Concurrent request completed
    Current system time is 26-JUL-2013 09:21:14
    +---------------------------------------------------------------------------+
    Some suggestion for resolve it??
    Thanks & Regards.

    In the document 294932.1 Section 4 there are no pre-installation patches or update for OS RedHat LinuxAS4.
    When I type echo $LD_ASSUME_KERNEL it doesn't display any value so do I need to set the LD_Assume_Kernal value manually.
    If yes, please let me know the path and command to set the kernel value.
    Thanks
    Amith

  • How to detect client OS from SQL*Plus script

    Sometimes in a SQL*Plus script I need to execute OS commands e.g.
    host rm tempfile.bufHowever of course Windows has no "rm" command by default, so I have to edit the script to use
    host del tempfile.bufNow if I could define &DELETE (for example, "cat"/"type" is another) as a substitution variable, I could just use
    host &DELETE tempfile.bufMaybe I need more coffee but all I could come up with was something like this:
    def rm=rm
    def cat=cat
    spool sqlplus_windows_defs.cmd
    prompt echo def rm=del
    prompt echo def cat=type
    spool off
    host .\sqlplus_windows_defs > sqlplus_windows_defs.sql
    @sqlplus_windows_defs.sql
    host &rm sqlplus_windows_defs.cmd
    host &rm sqlplus_windows_defs.sqlthe idea being that you first define the variables for nix ("rm" and "cat"), then attempt to create and execute a Windows command file containing DOS versions ("dele" and "type"), which does not run under nix. Unfortunately the OS failure message (".sqlplus_windows_defs: not found" in Unix) appears on the screen despite SET TERM OFF, so I'm back where I started.
    I know there are various ways to get the server OS, and you can get the SQL*Plus version with &_SQLPLUS_RELEASE and so on, but I can't see a way to determine the client OS. Any suggestions?

    Thanks guys. This seems to work in Windows XP - will try on Unix when I get a chance:
    col DELETE_COMMAND new_value DELETE_COMMAND
    col LIST_COMMAND new_value LIST_COMMAND
    def list_command = TYPE
    def delete_command = DEL
    SELECT DECODE(os,'MSWIN','TYPE','cat') AS list_command
         , DECODE(os,'MSWIN','DEL','rm')   AS delete_command
    FROM   ( SELECT CASE WHEN UPPER(program) LIKE '%.EXE' THEN 'MSWIN' END AS os
             FROM   v$session
             WHERE  audsid = SYS_CONTEXT('userenv','sessionid') );
    host &LIST_COMMAND xplan_errors.lst
    host &DELETE_COMMAND xplan_errors.lstIf the user doesn't have access to v$session it will just default to the Windows commands.
    http://www.williamrobertson.net/code/xplan.sql

  • SQL*PLUS console not coming back when create a tablespace in ORACLE RAC11g

    Hi all,
    I have run a create command in oracle RAC 11g system (2 nodes, ASM) by SQL*PLUS, every datafile for this tablespace is 1.5GB, I want to create 6 tablespace at the first:
    1. It run successfully for the first tablespace , it toook 4-5 minutes to come back;
    2. It run much longer time for the second tablespace , it took over 20 minutes to come back;
    3. The third tablespace , I waited for 45 minutes and it didn't come back.
    I have check in alert.log, and saw all three tablespace were successfully created about 4-5 minutes. And I also use another SQL*PLUS to query in user_tablespaces. the third tablespace did display in user_tablespaces view.
    From that time, I tried 4,5,6, it took me 30 minutes to create 1.5GB big tablespace. It doesn't make sense for me.
    Any sugguestion? Thanks.

    How did they create the disk group?
    How big are the devices/LUNs?
    are all of the LUNS the same size?
    Check the alert log for both the RDBMS and ASM.
    What redundancy did they use?
    in asmca, what is the total size of the disk group(s)? ( or sum total_mb from v$asm_diskgroup for each disk group)

  • Copying text in Sql*Plus

    I seem to be unable to copy and paste text using the "highlight text and right-click" procedure in Sql*Plus 8.0.6.0.0. The right-mouse button seems to work in everything else so it doesn't seem to be the mouse that is the problem. Does anybody know if this could be due to the way Sql*Plus is set up or some other Oracle related problem?

    You can either do SET PAGESIZE 0 which turns off all headings.
    Of you can do SET PAGESIZE 50000 which will reprint the headings every 50,000 lines.
    50,000 is the max. I don't know of a way to show the headings once, and only once. (you can turn off headings and fake them one time with a select ... from dual before your main query).

  • Chinese Characters in SQL Plus

    Hi, I wonder how do I input the chinese characters in SQL plus? I have set the NLS_LANG value to chinese characterset in the REGEDIT but it doesn't display the chinese characters. Is there any chinese version on Oracle JDeveloper Suite?
    Cheers

    i have installed sqlplus and oracle db in the same PC under chinese win xp.
    i found that if you spool the output to a text file, and type in dos-prompt, it still cannot display the chinese character properly. but if you open the text file by notepad, bingo, you can the chinese character.
    i think that it is because dos-prompt application is non-unicode application. so it could not display unicode character properly.
    as a result, if you want to display unicode character in non-unicode application (run sqlplus under dos-prompt), you have to set the NLS_LANG environment variable which match the character set of non-unicode application which your operating system assigned. in my case, it should be Big5. then oracle would do the conversion for you automatically, i.e. from unicode in DB to Big5 in client.
    I either set the NLS_LANG environment variable in one of the 2 ways:
    NLS_LANG=american_america.zht16big5 or
    NLS_LANG=american_america.zht16hkscs
    Regards,
    KH

  • Where its not possible to use a variable (&&var) in SQL*PLUS ?

    SQL*Plus Command Reference - DEFINE
    Whenever you run a stored query or script, SQL*Plus substitutes the value of variable for each substitution variable referencing variable (in the form &variable or &&variable)
    The question is which are the limits of this. Can eg even be between a 'STR&&varING' passed as parameter to some function? Or as parameter I can pass only a single variable and there isnt such auto-casting level ?
    I have created DBCA Scripts to batch create a DB. So I want inside these scripts to replace the DBNAME with a variable. So I can create different DBS with these prescriptions from an API tool.
    E.g here there are 6 different scenarios where I might need to pass the variable. I dont know
    1. On which of the bellow scenarios I can inject the &&var
    2. On which I cant and thus have to create a 2nd VAR to inject the 1st one
    3. Which dont accept variables at all - but only static text
    @D:\app\admin\DBNAMEY\scripts\CreateDB.sql
    spool D:\app\admin\DBNAMEY\scripts\CreateDB.log append
    startup nomount pfile="D:\app\admin\DBNAMEY\scripts\init.ora";
    CREATE DATABASE "DBNAMEY"
    DATAFILE 'D:\app\oradata\DBNAMEY\system01.dbf' SIZE ...
    GROUP 2 ('D:\app\oradata\DBNAMEY\redo02.log') SIZE 51200K,
    I may not start testing the scripts 6 times fearing corrupting my Workstation on half executed scripts.

    GoodfireGeorge wrote:
    SQL*Plus Command Reference - DEFINE
    Whenever you run a stored query or script, SQL*Plus substitutes the value of variable for each substitution variable referencing variable (in the form &variable or &&variable)
    The question is which are the limits of this. Can eg even be between a 'STR&&varING' passed as parameter to some function? Or as parameter I can pass only a single variable and there isnt such auto-casting level ?
    I have created DBCA Scripts to batch create a DB. So I want inside these scripts to replace the DBNAME with a variable. So I can create different DBS with these prescriptions from an API tool.
    E.g here there are 6 different scenarios where I might need to pass the variable. I dont know
    1. On which of the bellow scenarios I can inject the &&var
    2. On which I cant and thus have to create a 2nd VAR to inject the 1st one
    3. Which dont accept variables at all - but only static text
    @D:\app\admin\DBNAMEY\scripts\CreateDB.sql
    spool D:\app\admin\DBNAMEY\scripts\CreateDB.log append
    startup nomount pfile="D:\app\admin\DBNAMEY\scripts\init.ora";
    CREATE DATABASE "DBNAMEY"
    DATAFILE 'D:\app\oradata\DBNAMEY\system01.dbf' SIZE ...
    GROUP 2 ('D:\app\oradata\DBNAMEY\redo02.log') SIZE 51200K,
    I may not start testing the scripts 6 times fearing corrupting my Workstation on half executed scripts.
    If you can't test because you are afraid the test might fail, you need to address that issue first.  No one on the web is going to give you iron-clad assurance that some code you write is going to work exactly as you expect.
    Your script is trying to create a database?  What's the worst thing that can happen if it doesn't work?  Do you know how to manually dis-mantle whatever your script does?  If not, you need to learn.  The knowledge you will gain from that exercise will go a long way to improving your understanding of how these things interrelate.

  • 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

  • How to "end" function definition in SQL plus?

    I am using Oracle 11g and SQL plus.
    I am trying to define a function and get back to the SQL prompt, but it is just not exiting the function definition.
    SQL> create function dept_count (dept_name varchar(20))
    2 returns integer
    3 begin
    4 declare d_count integer;
    5 select count (* ) into d_count
    6 from instructor
    7 where instructor.dept_name = dept_name
    8 return d_count;
    9 end
    10 ;
    11
    12
    13
    14
    15
    16 ;;;
    17 end dept_count;
    18 ;
    19
    20 ; <--- I was expecting the SQL> prompt here but it doesn't appear.
    What should I do? Please help. Thanks.

    And, to answer probably the most frequently asked question when I was an Oracle instructor ...
    If you are saving this statement in a file to execute later, after the "/" at the bottom, hit return, so that your file contains a line feed after the /, rather than your file ending with the /
    Otherwise you get the annoying, but completely harmless, error message "Input truncated after (number) characters" when you compile the program.

  • Set Column width in query (not using SQL*Plus)

    How can I Set Column width in query
    I understand you can set column width using
    column col1 FORMAT A5
    select col1 from table1;But this only works in SQL*Plus
    I want to be able to do this in a regular SQL query window (not in SQL*Plus), how can I do it.....
    I am using a 'SQL window' in PL/SQL Developer IDE
    and when I use this syntax it says:
    ORA-00900: Invalid SQL statement
    Any suggestions are appreciated...
    thanks,
    M.

    Did you try using RPAD or LPAD functions? They fill the unfilled part of a string with character you provide... either on right or left side depending on what function you use.
    e.g.
    SELECT RPAD('Smith', 10, ' ') Name FROM dual;http://www.adp-gmbh.ch/ora/sql/rpad.html
    Edited by: Zaafran Ahmed on Nov 10, 2010 11:50 AM

  • Connecting SQL Plus to 10g XE

    Hi,
    I have Oracle 10g XE and Oracle Dev Suite installed on my computer. I want to connect to 10g XE via SQL Plus or from within Forms Builder but I don't know what to specify for Host String (in SQL Plus) or Database (in Forms Builder). "XE" doesn't work. Any ideas what should I put in for those params?
    Thanks in advance,
    Behi

    First you must make sure that your tnsnames.ora is configured correctly in 10g Devsuite (Forms)
    to do this you either configure it manually or use the Net Configuration Assistant found under
    All Programs<devsuit_home>/configuration and migration tools/Net Configuration Assistant.
    For manual configuration open the tnsnames.ora found under directory
    %oraclehome%/network/admin/tnsnames.ora
    and add a connection descriptor and save the file. remeber to take a backup copy.
    your file should look something like this.
    XE =
      (DESCRIPTION =
        (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
        (CONNECT_DATA =
          (SERVER = DEDICATED)
          (SERVICE_NAME = XE)
      )Regards,
    Tony

Maybe you are looking for

  • Adobe Photoshop 13.0.2 Installation failed. Error Code: U44M1P7

    I get a message: Adobe Photoshop 13.0.2 Installation failed. Error Code: U44M1P7 What went wromg?

  • PAPI - execute process based on selected participants

    In a process, there are two roles. In role one and two, interactive activities are set to user selects transition. Each role has one interactive activity. If a user finish task in activity one of role one, BPM workspace (10g) let this user select the

  • JNDI InitialContext Error

    Hello Experts, I have a little problem with my Java programm: Test remote = null; *               try {* //                  Create a new intial context, which loads from jndi.properties file. *               Context ctx = new InitialContext();* *   

  • PFCG Role Upload Issue

    Hi all, we are performing an upgrade from SAP 46C to ECC 6.0 and I download one Role from PFCG (46C). I use a sandbox system ECC 6.0 for testing PFCG Upload but I obtain the popup message: Incorrect release; see long text Incorrect release; see long

  • How can I edit the background colour of captions?

    Hi I am new to Captivate, and am liking what I am able to produce. However, I would like to use our corporate colour as the background of the captions. Does anyone know of any way I can do this? Many thanks in anticipation. Anne