Using Define Statement as Column Name Alias

Hi,
Is it possible to assign a defined variable as a column name in a simple select statement?
For examples -
DEFINE test_case = to_date('01-Jan-2011','DD-Mon-YYYY');
SELECT banana &&test_case
FROM dual;
Which would result in -
01-Jan-2011
banana
Is this at all possible? The column names will change when the date changes so I do not want to just label the columns normally as this would need to be changed every time the script is run for a different month.

Cameron wrote:
DEFINE test = to_char(SYSDATE,'Mon')
SELECT hello &&test
FROM dual
So should that result in -
June
hello
Becuase all I get is a fail and -
15:34:37 ORA-00923: FROM keyword not found where expectedClearly you missed sybrands response.
DEFINE is a SQL*Plus command (SQL*Plus is a GUI tool)
to_char and SYSDATE are SQL functions (SQL is a language)
You cannot use SQL directly in SQL*Plus commands like DEFINE.

Similar Messages

  • How to use INSERT with no column name specified?

    I want to insert rows into a database table using JDBC's PreparedStatement. I want to specify all values for each row, so that in plain SQL I would not have to specify column names. I wonder if I can do same thing with JDBC in the same manner (it would save a lot of network traffic as far as I can understand)? The problem is:
    I need to know the data types of the columns to use correct setXXX method on my PreparedStatement. For example: ps.setString() for CHAR data and ps.setBytes() for binary data. I can use Connection.getMetadata().getColumns(..,..,tableName,'%') to get column types for all columns in my table as a ResultSet. However but I am not sure if I get them in the right order, i.e. in the order in which the columns have been defined for the table in CREATE TABLE.
    So it seems I have a tough choice: to get type information in order externally or to specify (and probably transfer via network) column names in each INSERT statement. :-(
    Do I have a better choice? Any ideas will be highly appreciated..

    ...if I get them in the right order, ....Only reason for that is if you are using a meta-data type solution. If you are then there is no solution. After all customer name and address are both just text. How could you tell which is first even if you had a way to handle the types?
    But if your inserts are fixed then try using varchars (single ticked entries.) This depends on the database/driver. If is supported then you will have to use SimpleDateFormat to format dates/times in the correct format for the database or use a prepared statement with bind variables.

  • Changing the Column names / alias

    Hi,
    I have an oracle query and it works fine.
    select q.sname,
    SUM( decode(p.nprofile1,10,1,0)) as "0 - 5",
    SUM( decode(p.nprofile1,9,1,0)) as "6 - 10",
    SUM( decode(p.nprofile1,8,1,0)) as "11 - 15",
    SUM( decode(p.nprofile1,7,1,0)) as "16 - 19",
    SUM( decode(p.nprofile1,6,1,0)) as "20 - 20",
    SUM( decode(p.nprofile1,5,1,0)) as "21 - 27",
    SUM( decode(p.nprofile1,4,1,0)) as "28 - 30",
    SUM( decode(p.nprofile1,3,1,0)) as "31 - 40",
    SUM( decode(p.nprofile1,2,1,0)) as "41 - 45",
    SUM( decode(p.nprofile1,1,1,0)) "46 - Over",
    COUNT(q.sname) "TOTAL"
    from task_core@cds t, cor_queue q, profile_core@crb p
    where t.nmboxid = q.nmboxid
    and p.ncodaid = t.nobjectid
    and p.ntype=2
    GROUP BY q.sname
    ORDER BY q.sname
    It generates a Cross-tab sort of result and I am using the decode function to generate the result.
    My problem is that right now I am using hardcoded column names or alias for the columns generated by the decode function. eg. "0-5", "6-10" etc.
    I have another table which contains these values ("0-5","6-10"). I would like to know instead of hard coding the column names like
    SUM( decode(p.nprofile1,10,1,0)) as "0 - 5"
    can we retrieve the values from the Other table that contains the values "0-5","6-10" etc and display it there in the decode function?
    Pls help me with this issue
    Thanks
    Gilles

    hi,
    the column names are always fixed. You can try dynamic sql in pl/sql or spool then execute, but in pure sql, it is not possible

  • Data load component - add new column name alias

    Apex 4.2.2.
    Using the data load wizard a list of column and column name aliases had been created.
    When looking at the component (shared components/Data load tables/column name aliases) it is possible to edit and delete a column alias there. Unfortunatly it does not seem possible to add a new alias. Do I overlook something, or is there a workaround for this?

    Try this:
    REPORT ztest LINE-SIZE 80 MESSAGE-ID 00.
    DATA: name_int TYPE TABLE OF v_usr_name WITH HEADER LINE.
    DATA: BEGIN OF it_bkpf OCCURS 0.
            INCLUDE STRUCTURE bkpf.
    DATA:   username LIKE v_usr_name-name_text,
          END   OF it_bkpf.
    SELECT * FROM bkpf INTO TABLE it_bkpf UP TO 1000 ROWS.
    LOOP AT it_bkpf.
      name_int-bname = it_bkpf-usnam.
      APPEND name_int.
    ENDLOOP.
    SORT name_int BY bname.
    DELETE ADJACENT DUPLICATES FROM name_int.
    LOOP AT it_bkpf.
      READ TABLE name_int WITH KEY
        bname = it_bkpf-usnam
        BINARY SEARCH.
      IF name_int-name_text IS INITIAL.
        SELECT SINGLE name_text
          FROM v_usr_name
          INTO name_int-name_text
          WHERE bname = it_bkpf-usnam.
        MODIFY name_int index sy-tabix.
      ENDIF.
      it_bkpf-username = name_int-name_text.
      MODIFY it_bkpf.
    ENDLOOP.
    Rob

  • Execute immediate with using clause to pass column name dynamically

    Hai,
    Is there any way using execute immeidate to pass the column name dynamically. I used to pass the column value as dynamic with the help of "Using clause" . But if i use to pass column name, it is giving numberic error at run time. Eg,. for testing has been given below.
    1. Column value as dynamic, which is working correctly.
    create or replace function testexeimm (acctnum char)
    return number as
    acctbal number;
    begin
    execute immediate 'select balance from acct_master where acct_no=:a' into acctbal using acctnum;
    return acctbal;
    end;
    2. Column name as dynamic which is not working
    create or replace function testexeimm (colnam char)
    return char as
    acctbal char;
    begin
    execute immediate 'select :a from ch_acct_mast where rownum=1' into acctbal using colnam;
    return acctbal;
    end;
    Any help in this regard will be highly appericated.
    Regards
    Sridhar

    So the variable has to be numeric too:
    create or replace function testexeimm (colnam char)
    return number as
    acctbal number;
    begin
    execute immediate 'select '|||colnam||' from ch_acct_mast where rownum=1' into acctbal;
    return acctbal;
    end;Max
    http://oracleitalia.wordpress.com

  • How to use string as a column name

    Hello,
    I have a fn getField() that returns a column delimited string - amt1,amt2 . I want to use this string as the column name in a second query on table MASTER_AMT and get the values for amt1 and amt2...so when i try....
    select getField( 'NPC_NOYTG' ) FROM MASTER_AMT
    WHERE ACTI_CODE = 'NPOR';
    the o/p i get is...
    GETFIELD('NPC_NOYTG')
    AMT1,AMT2,AMT3
    instead of...
    AMT1 AMT2
    500 0
    that i require.
    Any ideas on how to convert the string returned to a column name?
    Thanks very much
    rgds

    Try this ....
    In SQL*PLUS
    SQL> var ref_c refcursor
    --- Then type the follwing at SQL prompt
    declare
    cursor cur is
    select column_name
    from user_tab_columns a,
         (select upper(getField( 'NPC_NOYTG')) fld FROM MASTER_AMT
         WHERE ACTI_CODE = 'NPOR') col_lst
    WHERE
    instr(chr(44) || col_lst.fld || chr(44),chr(44) || a.COLUMN_NAME || chr(44) ) > 0
    AND table_name = 'MASTER_AMT';
    v_str varchar2(1000):= ' ';
    begin
    for c in cur loop
    v_str := v_str || c.column_name || ',' ;
    end loop;
    v_str := substr(v_str,1,len(v_str)-1);
    open :ref_c for
    'select ' || v_str || ' from master_amt';
    end;      
    --- after executing the above block, type the following at SQL prompt
    SQL > print ref_c
    Please let me know if this works for you. This should for any number of columns returned by the function.
    Shakti
    (http://www.impact-sol.com)
    (Developers of Guggi Oracle)

  • How to use a value as column name in Triggers?

    Hello All!!!!!
    How can i use a column value instead of field name in triggers? e.g. table X has one column and having following data.
    COL1*
    Id
    Name
    Contact No.
    now in triggers i want to use "Id" instead of :new.id, is it possible?
    Any solution?

    actually i am trying to write a trigger on lets say Table2 and i dont want to specify the column name in the trigger.
    CREATE OR REPLACE TRIGGER TR_AIUDR_002
    AFTER UPDATE
    ON mytable
    FOR EACH ROW
    DECLARE
    CURSOR C IS
    SELECT * FROM t_table_columns;
    BEGIN
    IF UPDATING then
    FOR I IN C LOOP
    IF *:new.column_name <> :OLD.column_name* THEN
    insert into....
    END IF;
    END LOOP;
    END IF;
    END TR_AIUDR_002;
    instead of :new.column_name <> :old.column_name i want to compare on the base of loop column
    Edited by: rha2 on Jan 31, 2009 7:04 PM

  • Substitution string used in custom Report column name does not display in PDF version of report

    I am using Apex 4.2.6.00.03, Apex Listener 2 via Glassfish4 and have set up all my applications and reports on this system.  We previously used Oracle 10.2, with Apache with a custom fopping document.
    My issue is that I have a report that has custom column headings using a substitution string to pull in the begin or end date for the report.  When the report is run and displayed, the column headings appropriately display the date.  However, when I try to set up the Print to PDF option, the column headings are not displaying correctly.
    Is it possible to use a substitution string in the column heading?  I am able to use the substitution string in the Page Header and Page Footer and those display correctly.
    In the Report Attributes setup I have set the "Strip HTML" to Yes and I have four columns that are using the &"ITEM NAME". string.  See below for actual display:
    The report column headings in APEX displays correctly (bold is the substitution detail): 
    Fund    Account Description          Balance 07/01/2014     Budget/Goal FY 14-15     YTD Actual 02/28/2015         Ending Balance 02/28/2015
    In the Print Attributes setup, when I get to the Report Columns section, the Heading column displays the headings as set up in the Report Attributes custom and I am not able to edit these names.  See below:
    In the version of the report that is Printed to PDF I get the following for display:
    Fund           Account Description           Balance %26amp;P347_BEGIN_DATE.     Budget/Goal %26amp;P347_FY.     YTD Actual %26amp;P347_END_DATE.     Ending Balance %26amp;P347_END_DATE.
    Any assistance would be greatly appreciated.
    Thanks,
    Pat

    First, the misspelled word is a test object and not data.
    Second, all data display correctly.
    Third, text object is displaying the old misspelled word.
    Fourth, I have eliminated the possibility that problems in of my pdf export routine cause this issue by exporting directly from Crystal Reports Viewer. I print the report to the crystal report viewer. The report looks good. The text object is spelled correctly. Then I click the Crystal Reports viewer's export button in the left upper corner and I export to both EXCEL and PDF. The excel export looks good. The pdf export is misspelled. All the export occurs internally in Crystal reports.
    Fifth, I found outthat all users who have this problem have the ADOBE PDF writer installed. I am just suspicious that ADOBE writer is interferring with Crystal export
    Sixth, I cannot recreate this problem on any of our development and test machines. It only happens on end-user laptops.
    Seventh, I changed the name of the report that had this problem and created a new version and installed on end-user laptop. The behaviour still persists. User saved the report as both RPT and PDF. RPT export looks good. PDF version has the spelling problem. Data on both reports is up-to-date and good. I copied the same RPT export to my PC and exported it to PDF, the pdf looks good. That is why I think something on the end-users laptops is causing the export to use some cached template.
    One more thing I did was to change the report name in VB.NET project, recreated a new package and installed on end-user's laptop. The same exact problem is still there.
    I have worked with Crystal Reports more than 15 years and I have never such a weird behaviour before. I know this sounds very weird. We are all baffled by what is happening.

  • User stats table - columns' names description

    Hi,
    I have question about creation user stats table. I have created such a table:
    EXECUTE DBMS_STATS.CREATE_STAT_TABLE ('PIOTR', 'piotr_sysstats', 'USERS');Here is stats table structure:
    SQL> desc piotr_sysstats;
    Name                                      Null?    Type
    STATID                                             VARCHAR2(30)
    TYPE                                               CHAR(1)
    VERSION                                            NUMBER
    FLAGS                                              NUMBER
    C1                                                 VARCHAR2(30)
    C2                                                 VARCHAR2(30)
    C3                                                 VARCHAR2(30)
    C4                                                 VARCHAR2(30)
    C5                                                 VARCHAR2(30)
    N1                                                 NUMBER
    N2                                                 NUMBER
    N3                                                 NUMBER
    N4                                                 NUMBER
    N5                                                 NUMBER
    N6                                                 NUMBER
    N7                                                 NUMBER
    N8                                                 NUMBER
    N9                                                 NUMBER
    N10                                                NUMBER
    N11                                                NUMBER
    N12                                                NUMBER
    D1                                                 DATE
    R1                                                 RAW(32)
    R2                                                 RAW(32)
    CH1                                                VARCHAR2(1000)Does someone know what each of this columns store? I will be very appreciated if someone help me find information about user stats tables.
    Peter D.

    Google is your friend and Wolfgang Breitling rules! :)
    http://www.centrexcc.com/SQL%20Tuning%20with%20Statistics.ppt.pdf
    Gints Plivna
    http://www.gplivna.eu

  • How to use column name as variable in select statement

    hi,
    i want to make a sql query where in select statement using variable as a column name. but its not working plz guide me how can i do this.
    select :m1 from table1;
    regards

    Hi,
    Is this what you want..
    SQL> select &m1 from dept;
    Enter value for m1: deptno
    old   1: select &m1 from dept
    new   1: select deptno from dept
        DEPTNO
            10
            20
            30
            40
    SQL> select &m1 from dept;
    Enter value for m1: dname
    old   1: select &m1 from dept
    new   1: select dname from dept
    DNAME
    ACCOUNTING
    RESEARCH
    SALES
    OPERATIONS
    SQL> select &&m1 from dept;
    Enter value for m1: loc
    old   1: select &&m1 from dept
    new   1: select loc from dept
    LOC
    NEW YORK
    DALLAS
    CHICAGO
    BOSTON
    SQL> select &&m1 from dept;
    old   1: select &&m1 from dept
    new   1: select loc from dept
    LOC
    NEW YORK
    DALLAS
    CHICAGO
    BOSTONIf you use single '&' then each time you fire the query, It will ask for the new value..
    But if you will use double '&&' the value of m1 will be persistent across the session..
    Twinkle

  • How to use get column name.vi in SQL toolkit 2.0?

    Due to the vi "get column name.vi" paremeters,no table name has connected to the vi. So, I want to ask how to use this vi for gain one column name of a table. Maybe there are some other ways to solve column name getting.
    Thanks.

    Thanks!
    Error 4101 Description:
    Execute SQL - The connection, statement, or query handle you provided is not valid.
    I don't just used the toolkit in a while,now, I am developing a irrigation system. For the table field names defined by users,column names must be known before any select operations. Do you have any other good idea about drawing out the columnname parameters?
    As you know, a valid DSN and table have been also available. The database I used is Access. The bad thing to me is that there is no any text information gotten. And I think, it may be some problems in connection way which I don't find out.
    Really appreciated by your reply.
    Could you give me some example in the aspect?
    Thank you again.

  • How to pass column name in slect statement in query

    hi,
    i want to make a report where in query select statement using variable as a column name. but its not working plz guide me how can i do this.
    i have created a function which return column name through variable & that variable i want to to use in select statement
    select :m1 from table1;
    regards

    Hi,
    Create a user parameter (say P_field), and assign a valid field name as initial value (say NAME), And In the Query, write
    SELECT CODE, &P_field FN_FIELD FROM <table_name> WHERE <condition>And in the BEFORE PARAMETER FORM Trigger under the Report Triggers, write,
    function BeforePForm return boolean is
    begin
      :P_field := <your_function_call>;
      return (TRUE);
    end;And use that FN_FIELD field in the report.
    Hope this will clear your issue.
    Regards,
    Manu.

  • Transpose Distinct Date and Use as Column name

    All,
    I am trying to transpose a distinct date and use it as a column name and list the data below it. My version of Oracle does not have the pivot function. Plus I am having trouble with figuring out how to alter the table name to the distinct date. Can someone provide me with logic that will dynamically take the current format (see below) and transpose it to the needed format (see below)?
    Current format:
    WEEK_END_DATE     RD     STORE_NUMBER     RANK
    09-19-2009     R0011     00505     6
    09-19-2009     R0028     00097     97
    09-19-2009     R0057     01801     72
    09-19-2009     R0061     04775     72
    09-19-2009     R0068     03920     66
    09-26-2009     R0011     00505     8
    09-26-2009     R0028     00097     50
    09-26-2009     R0057     01801     120
    09-26-2009     R0061     04775     30
    09-26-2009     R0068     03920     1
    nth date
    The format I need:
    RD     STORE_NUMBER     09-19-2009 09-26-2009 nth date....
    R0011     00505     6 8
    R0028     00097     97 50
    R0057     01801     72 120
    R0061     04775     72 30
    R0068     03920     66 1

    I apprreciate your help. I have tried to implement the dynamic pivot logic. I can create the correct case statement and change the column name to the name I need.
    However, when I try to use @@dynamic_pivot.sql I get the following error:
    ORA-04054: database link ORAEDW@DYNAMIC_PIVOT_SUBSCRIPT does not exist
    I have tried it three ways...
    @@dynamic_pivot
    and @@dynamic_pivot.sql
    and @@c:\dynamic_pivot_subscript.sql
    I don't have direct access to the database. I have to run my queries from toad. When I cut and paste the generated case statements, It works. I am just not able to dynamiclly insert those case statements into a select. Do you have any suggestion?
    -- ***** Start of dynamic_pivot.sql *****
    -- Suppress SQL*Plus features that interfere with raw output
    set feedback off;
    set heading off;
    SPOOL     c:\dynamic_pivot_subscript.sql
    SELECT
    DISTINCT',max(CASE WHEN week_end_date = '''|| week_end_date || ''' THEN rank END) AS '|| 'DATE_AS_OF_' ||
    to_char(week_end_date,'MM_DD_YYYY') AS case
    FROM
    test_ptw_bottom_10;
    SPOOL OFF
    -- Restore SQL*Plus features suppressed earlier
    What I need:
    SELECT     
    rd,
    store_number
    @@c:\dynamic_pivot_subscript.sql
    FROM     
    test_ptw_bottom_10
    where
    week_end_date in ('19-SEP-09','26-sep09')
    group by
    rd,store_number
    ORDER BY     
    rd;
    What works:
    SELECT     
    rd,
    store_number
    ,max(CASE WHEN week_end_date = '26-SEP-09' THEN rank END) AS DATE_AS_OF_09_26_2009
    ,max(CASE WHEN week_end_date = '19-SEP-09' THEN rank END) AS DATE_AS_OF_09_19_2009
    FROM     
    test_ptw_bottom_10
    where
    week_end_date in ('19-SEP-09','26-sep09')
    group by
    rd,store_number
    ORDER BY     
    rd;
    Edited by: user10609947 on Oct 5, 2009 2:36 PM
    Edited by: user10609947 on Oct 5, 2009 2:38 PM

  • Using select list value as column name in SQL

    Folks,
    Thanks in advance for any help with this
    I have a select list with two values (Instance and Username) created by
    STATIC2:Username;USERNAME,Instance;INSTANCE
    I am trying to pass the value of this (:P2_SELECT) and use it as a column name in a SQL query as below
    select USERNAME,
    INSTANCE
    from table_name
    where :P2_SELECT like '%'||:P2_TEXTSEARCH||'%'
    When I substitue the :P2_SELECT for one of the values (either instance or username) this works fine
    I suspect it is due to how Application Express interprets the value of :P2_SELECT
    Any help would be much appreciated!
    Gareth

    Thanks Munky that worked a treat!
    The next hurdle I have now is that because I have changed the region type to "PL/SQL Function(returning SQL Query)" there is no longer the option to add sorting to the columns as I have had to change the Source option to "Use Generic Column Names (parse query at runtime only)"
    I will have a scout around and see how I can get around this
    Gareth

  • Invalid Column Name message in the subquery

    Hi All, I am receiving the invalid column name message in the subquery. Please help me if there is any work around or change in the query:
    Sample query:
    update table1 set table1.column1 =
    (Select column1 from
    (Select column1 from table2 where
    table1.columnX = table2.columnX
    order by table2.columnM desc,table2.ColumnN desc,
    where rownum =1)
    When i run the above query i am receiving the following error message:
    ORA-00904:invalid column name at table1.columnx.
    This column is already existing in table1 and looks like this table is not recoginzed inside of the subquery.
    I am trying to update table1.column1 using the first value from table2 after ordering by table2.columnM desc, table2.columnN desc. (ColumnM and ColumnN are the Date columns which i need to perform the sorting). I am new to sql/Plsql. Thanks in Advance for help....

    The problem is that you can not refer to columns from the outer table from inside a second subquery inside your subquery. Only one level of subquery can be used to transport the column name,.
    A solution can be to use groups and aggregation functions instead of rownum = 1.
    The following might work.
    untested
    update table1
    set table1.column1 =
      (Select max(column1) keep (dense_rank first over table2.columnM desc,table2.ColumnN desc)
       from table2
       where table1.columnX = table2.columnX
       ) Another way can be to to make a UNCORRELATED subquery first and then filter on that uncorrelated query with the column name from the outer statement.
    This time I use a analytic function.
    untested
    update table1 u
    set u.column1 = (select v1.column1
       from
         (Select t2.column1, t2.columnX, row_number over (partition by t2.column1, t2.columnX order by t2.columnM desc,t2.ColumnN desc) as rn
          from table2
          ) v1
       where v1.columnX = u.columnX
       and v1.rn = 1
    where /* where clause is missing! */

Maybe you are looking for

  • My 5th gen nano no longer works on its extrnal speaker dock

    my daughters ipod nano 5th gen no longer seems to work correctly when plugged into an external speaker dock. the ipod will still charge, but any sound will play via the ipods speakers not through the externals. the ipod still shows as charging when p

  • Printing a PDF document to virtual PDF printer converts text to image in output PDF-file

    When I "print" any regular PDF document to a PDF virtual printer, it always converts a source regular (textual) PDF document into an image only document. It applies even to pure plain text documents (say, HTML source code etc.) (I often need to creat

  • Appending spaces after a CHAR field

    Hi, We are generating a fixed width pipe delimited flat file in our project and hence to keep the width constant for every record, we need to append spaces after the individual values in the records. Some of these infoobjects are not ALPHA converted.

  • Icons not displaying in oracle forms.

    Hi All, I am trying to display icons on Oracle forms 10g.I just brought over these forms from another system and I am trying to display the icons like next record, clear form etc.. I have done the following steps so far. The icons are still not displ

  • Rio driver for labview 8.6 windows 7

    Hi, Can anyone let me know what's RIO driver version for labview 8.6 and windows 7 please? thanks,