Dynamic Column Query

Hi Friends,
Can you please help me in writing a query for :
YEAR PRODUCTION QLY_TYPE
1991 23 A
1991 12 B
1991 19 K
1992 23 A
1992 25 B
1992 23 K
1993 27 A
1995 12 B
1993 16 K
1994 42 A
1995 53 A
1994 40 A
Query : Statistics on total production for last 3 Years
( suppose user chooses 1994 --> for years 1994,1993,1992
suppose user chooses 1995 --> for years 1995,1994,1994)
OUT PUT should be as for 1994;
1994 1993 1992
82 43 71
i.e., Column Name should be the Year Values
Thanks in Advance.
-Dhanu

i have created a function for these..please check whether it's helpful for u or not
create or replace
function get_det( p_year in varchar2 )
return varchar2
is
l_str varchar2(2000) default null;
l_sep varchar2(1) default null;
begin
for x in ( WITH details AS (SELECT 1991 year,23 production, 'A' qly_type
FROM dual
UNION
SELECT 1991 ,12, 'B'
FROM dual
UNION
SELECT 1991, 19 ,'K'
FROM dual
UNION
SELECT 1992,23, 'A'
FROM dual
UNION
SELECT 1992, 25 ,'B'
FROM dual
UNION
SELECT 1992, 23 ,'K'
FROM dual
UNION
SELECT 1993, 27, 'A'
FROM dual
UNION
SELECT 1995, 12, 'B'
FROM dual
UNION
SELECT 1993 ,16, 'K'
FROM dual
UNION
SELECT 1994 ,42 ,'A'
FROM dual
UNION
SELECT 1995, 53, 'A'
FROM dual
UNION
SELECT 1994 ,40 ,'A'
FROM dual
select year,tot
from
(select year,sum(PRODUCTION)tot from details
group by year) a
where year in(p_year,p_year-1,p_year-2)
loop
l_str := l_str || l_sep || x.tot;
l_sep := ',';
end loop;
return l_str;
end;
SQL> select 1994,get_det(1994) from dual;
1994 GET_DET(1994)
1994 71,43,82
Thanks

Similar Messages

  • How to create a Type Object with Dynamic select query columns in a Function

    Hi Every One,
    I'm trying to figure out how to write a piplined function that executes a dynamic select query and construct a Type Object in order to assigned it to the pipe row.
    I have tried by
    SELECT a.DB_QUERY INTO actual_query FROM mytable a WHERE a.country_code = 'US';
    c :=DBMS_SQL.OPEN_CURSOR;
    DBMS_SQL.PARSE(c,actual_query,DBMS_SQL.NATIVE);
    l_status := DBMS_SQL.EXECUTE(c);
    DBMS_SQL.DESCRIBE_COLUMNS(c, col_cnt, rec_tab);
    FOR j in 1..col_cnt LOOP
    DBMS_SQL.DEFINE_COLUMN(c,j,v_val,2000);
    END LOOP;
    FOR j in 1..col_cnt LOOP
    DBMS_SQL.COLUMN_VALUE(c,j,v_val);
    END LOOP;
    But got stuck, how to iterate the values and assign to a Type Object from the cursor. Can any one guide me how to do the process.
    Thanks,
    mallikj2

    Hi Justin,
    First of thanks for your reply, and coming to my requirement, I need to report the list of items which are there in the dynamic select statement what am getting from the DB. The select statement number of columns may vary in my example for different countries the select item columns count is different. For US its '15', for UK it may be 10 ...like so, and some of the column value might be a combination or calculation part of other table columns (The select query contains more than one table in the from clause).
    In order to execute the dynamic select statement and return the result i choose to write a function which will parse the cursor for dynamic query and then iterate the values and construct a Type Object and append it to the pipe row.
    Am relatively very new for these sort of things, welcome in case of any suggestions to make it simple (Instead of the function what i thought to work with) also a sample narrating the new procedure will be appreciated.
    Thanks in Advance,
    mallikj2.

  • Setting Column Names in Dynamic Pivot Query

    Hi all,
    I'm having trouble setting column names in a dynamic pivot query and was wondering if someone could please help me figure out what I need to do.
    To help you help me, I've setup an example scenario in my hosted account. Here's the login info for my hosted site at [http://apex.oracle.com]
    Workspace: MYHOSTACCT
    Username : DEVUSER1
    Password : MYDEVACCTAnd, here is my test application info:
    ID     : 42804
    Name   : dynamic query test
    Page   : 1
    Table 1: PROJECT_LIST         (Alias = PL...  Listing of Projects)
    Table 2: FISCAL_YEAR          (Alias = FY...  Lookup table for Fiscal Years)
    Table 3: PROJECT_FY           (Alias = PF...  Intersection table containing project fiscal years)
    Table 4: PROJECT_FY_HEADCOUNT (Alias = PFH... Intersection table containing headcount per project and fiscal year)Please forgive the excessive normalization for this example, as I wanted to keep the table structure similar to my real application, which has much more going on.
    In my sample, I have the "Select Criteria" region, where the user specifies the project and fiscal year range that he or she would like to report. Click the Search button, and the report returns the project headcount in a pivoted fashion for the fiscal year range specified.
    I've got it working using a hard-coded query, which is displayed in the "Hardcoded Query" region. In this query, I basically return all years, and set conditions on each column which determines whether that column should be displayed or not based on the range selected by the user. While this works, it is not ideal, as there could be many more fiscal years to account for, and this is not very dynamic at all. Anytime a fiscal year is added to the FISCAL_YEAR table, I'd have to update this page.
    So, after reading all of the OTN SQL pivot forums and "Ask Tom" pivot thread, I've been able to create a second region labeled "Dynamic Query" in which I've created a dynamic query to return the same results. This is a much more savvy solution and works great; however, the column names are generic in the report.
    I had to set the query to parse at runtime since the column selection list is dynamic, which violates SQL rules. Can anyone please help me figure out how I can specify my column names in the dynamic query region to get the same column values I'm getting in the hardcoded region?
    Please let me know if you need anymore information, and many thanks in advance!
    Mark

    Hi Tony,
    Thanks so much for your response. I've had to study up on the dbms_sql package to understand your function... first time I've used it. I've fed my dynamic query to your function and see that it returns a colon delimited list of the column names; however, I think I need a little more schooling on how and where exactly to apply the function to actually set the column names in APEX.
    From my test app, here is the code for my dynamic query. I've got it in a "PL/SQL function body returning sql query" region:
    DECLARE 
      v_query      VARCHAR2(4000);
      v_as         VARCHAR2(4);
      v_range_from NUMBER;
      v_range_to   NUMBER;         
    BEGIN
      v_range_from := :P1_FY_FROM;
      v_range_to   := :P1_FY_TO;
      v_query      := 'SELECT ';
      -- build the dynamic column selections by looping through the fiscal year range.
      -- v_as is meant to specify the column name as (FY10, FY11, etc.), but it's not working.
      FOR i IN v_range_from.. v_range_to  LOOP
        v_as    := 'FY' || SUBSTR(i, 3, 4);
        v_query := v_query || 'MAX(DECODE(FY_NB,' || i || ',PFH_HEADCOUNT,0)) '
          || v_as || ',';
      END LOOP;
      -- add the rest of the query to the dynamic column selection
      v_query := rtrim(v_query,',') || ' FROM ('
        || 'SELECT FY_NB, PFH_HEADCOUNT FROM ('
        || 'SELECT FY_ID, FY_NB FROM FISCAL_YEAR) A '
        || 'LEFT OUTER JOIN ('
        || 'SELECT FY_ID, PFH_HEADCOUNT '
        || 'FROM PROJECT_FY_HEADCOUNT '
        || 'JOIN PROJECT_FY USING (PF_ID) '
        || 'WHERE PL_ID = ' || :P1_PROJECT || ') B '
        || 'ON A.FY_ID = B.FY_ID)';
      RETURN v_query;
    END;I need to invoke GET_QUERY_COLS(v_query) somewhere to get the column names, but I'm not sure where I need to call it and how to actually set the column names after getting the returned colon-delimited list.
    Can you (or anyone else) please help me get a little further? Once again, feel free to login to my host account to see it first hand.
    Thanks again!
    Mark

  • Creating Query with dynamic columns to show results

    Hi experts,
    I need to know how to create a query with dynamic columns. Meaning, I don't want to create a query with fixed columns representing the 12 periods of the fiscal year to show me actuals as the fiscal year proceeds.
    For example, if I am currently in the middle of period 3 (March) of a fiscal year, when I execute the query, I need it to automatically only show me the 'Actuals' for periods 1 and 2, without seeing the columns from periods 3 to 12 showing blank.
    Then when I am in the middle period 5 (May) the query should ONLY show me the columns for periods 1 to 4 'Actuals', no results should be shown for periods 5 to 12 yet, and I don't want to even see blank columns for period 6 to 12.
    How do I define my columns, to achieve this.
    Maximum points will be awarded.
    Thanks Everyone.

    Hi Josh,
    I'm having a little difficuluty understanding what should be included in my restricted key figures.
    The time characteristics that I have available to use are:
    0FISCPER3 (posting period)
    0FISCYEAR (fiscal year), currently using SAP EXIT to default current fiscal year.
    0FISCVARNT (fiscal year variant).
    In addition, I have the following characteristics available to be used in the columns:
    Value type (10)
    version (currently I'm using variable for it)
    Currency type (020)
    Currency (USD).
    Can you explain what my restricted key figure should be based on and how it should look.
    I tried to create a restircted key figure using 0AMOUNT, and 0FISCPER3. For 0FISCPER3  I created a range from 1 to previous period (using SAP EXIT that supplied previous period).I also had value type, version, currency type, and currency included in that restricted key figure.Then when I tried to drag 0FISCPER3 under the restricted key figure once again, it wouldn't let me, probably because I've already used 0FISCPER3 in the restricted key figure.
    Please let me know if my explanation is not clear.
    Your step by step help would be great.
    Thanks
    Edited by: Ehab Mansour on Sep 23, 2008 2:40 PM

  • Bex Query which uses Dynamic columns to display actuals

    Hi Bex experts,
    I have a query issue/question.
    I currently have a Bex query which shows me the the planned values for each period, spanning 6 years into the future. My Key figure columns are defined as follows:
    Value type  = '020'
    Version  = mandatory variable, entered at execution.
    Posting period (FISCPER3)  = These columns are fixed values using periods 1 to 12 for each column.
    Fiscal year (0FISCYEAR) = Each column contains SAP exit for current year, and using the offset +1, +2, +3, +4 etc, when I define the future years coulmns.
    Currency = fixed 'USD'.
    Fiscal year variant = fixed 'Z4'
    The above works fine for plan data.
    I want to now include is:
    Seperate 'Dynamic columns' to show only actuals for period ranges from period one to the previous period (or current period minus 1). Each period should have it's own column for actuals.
    The dynamic actuals columns should be grouped together to the left of the plan columns.
    Actuals are only for current year, so I will still use the SAP EXIT for current year in the column definition.
    Example: If I am currently in period 10, the query should show me actuals from period 1 to period 9 in seperate columns, then continue to show me my plan values columns that I have in place already.
    How can I construct these actuals columns in to my existing query. If you have possible screens shots.
    Thanks, and maximum points will be alotted.

    The way I have approached this you may not like as it involves quite a bit of coding
    12 CKFs
    each CKF adds up 2 RKFs
    So 24 RKFs
    example Column 6 CKF
    Adds Column 6 RKF Actual and Column 6 RKF Plan
    Column 6 RKF Actual contains Actual version + key figure + Period variable column 6 Actual
    Column 6 RKF Plan contains Plan version + key figure + Period Variable column 6 Plan
    Period variable column 6 Actual
    is a cmod variable which reads the entered date
    if the period of entered date is LE 6
    then return period 6 into "Period variable column 6 Actual"
    else put 0 into "Period variable column 6 Actual"
    Period variable column 6 Plan
    is a cmod variable which reads the entered date
    if the period of entered date is LE 6
    then return period 0 into "Period variable column 6 Plan"
    else put 6 into "Period variable column 6 Plan"
    Now what happens is that if you enter period 6 in your selection screen all the Actuals of columns greater than 6 all have period 0 put into their selection so return 0 and all the columns less than or equal to 6 return the values for the fiscal period (ie column 1 gets period 1)
    And in addition all the Plans columns return the value of their column ie for their period for those greater than 6 and for those less than 6 they all return 0
    It's convulted - but you get the idea - and yes it works
    There may be a better way to do it - and I am open to suggestions
    (this does assume that NOTHING is posted to period 0 otherwise it won't work)

  • Displaying dynamic columns in the query output.

    Hello,
    Depending on current quarter output of the query would vary.
    If current quarter is 'Q1'
    O/p : InvQ1  Del  BackQ1  BackQ2  BackQ3  BackQ4
    If current quarter is 'Q2'
    O/p : InvQ1  InvQ2  Del  BackQ2  BackQ3  BackQ4
    If current quarter is 'Q3'
    O/p : InvQ1  InvQ2  InvQ3  Del  BackQ3  BackQ4
    If current quarter is 'Q4'
    O/p : InvQ1  InvQ2  InvQ3  InvQ4  Del  BackQ4
    So, out of 9 columns, 6 columns would display at any given time depending on the current quarter.
    Invoice of 4 quarters, Deliquency and Backlog of 4 quarters.
    I am not getting any way how to display dynamic columns or hide unwanted/blank columns.
    For the time being I have added all 9 columns in the query, and in the output unwanted columns shows blank.
    Can anybody please suggest me how to display only 6 columns in the output depending on current quarter.
    Thanks and Regards
    Shilpa

    Hello,
    This shouldn't be too difficult. Assuming you have a variable with the selected quarter, you may choose to display Inv (whatever that is) for quarters 1 through variable, Del, and Back for quarters variable through 4. You also need a drilldown on quarter in the columns (after the key figure structure). You would probably need to restrict 'Del' on the variable as well if you haven't already done it.
    Best regards,
    Christoffer

  • Dynamic columns in query

    Hi,
    This is regarding creation of dynamic columns in an input ready query. We were able to create dynamic data columns in the layouts of BPS. For example if I choose fiscal year then the layout can show one columns for each of the fiscal periods 'dynamically'.
    Is there the same feature in BI input ready query as well?
    Please advise.
    BR,
    SSC

    Hi all,
    Sorry if I was not that clear before.
    Let me try to explain it with another example. Lets say we are working on a rolling forecast scenario. We forecast from the current running period to the end of fiscla year. Meaning if we are in April then April- December (case-1) and if we are in Sept. then Sept-December (case-2). I want data columns which are combinations of period and 0amount. In case-1 above we will have 9 such columns and in case-2 above we should have 4 such columns. I was able to achieve this in BPS by restricting the column with a variable for periods and then marking it 'dynamic'. It would automatically expand based on the number of periods in the variable at run time.
    Could you advise how to configure the input-ready query in such a way?
    Regards,
    SSC

  • How to change recordset bahaviour to accept dynamic column names in the where clause

    Hi
    im using php-mysql and i make a recordset and i want to make the column names in the where clause to be dynamic like
    "select id,name from mytable where $tablename-$myvar";
    but when i do this my i break the recordset and it disappear
    and when i use variables from advanced recordset it only dynamic for the value of the column not for the column name
    and when i write the column name to dynamic as above by hand it truns a red exclamation mark on the server behaviour panel
    so i think the only way is to change the recordset behaviour is it? if so How to make it accept dynamic column names?
    thanks in advance.

    As bregent has already explained to you, customizing the recordset code will result in Dreamweaver no longer recognizing the server behavior. This isn't a problem, but it does mean that you need to lay out your dynamic text with the Bindings panel before making any changes. Once you have changed the recordset code, the Bindings panel will no longer recognize the recordset fields.
    Using a variable to choose a column name is quite simple, but you need to take some security measures to ensure that the value passed through the query string isn't attempting SQL injection. An effective way of doing this is to create an array of acceptable column names, and check that the value matches.
    // create array of acceptable values
    $valid = array('column_name1', 'column_name2', 'column_name3');
    // if the query string contains an acceptable column name, use it
    if (isset($_GET['colname']) && in_array($_GET['colname'], $valid)) {
      $col = $GET['colname'];
    } else {
      // set a default value if the submitted one was invalid
      $col = 'column_name1'
    You can then use $col directly in the SQL query.

  • Saving result from sp_executesql into a variable and using dynamic column name - getting error "Error converting data type varchar to numeric"

    Im getting an error when running a procedure that includes this code.
    I need to select from a dynamic column name and save the result in a variable, but seem to be having trouble with the values being fed to sp_executesql
    DECLARE @retval AS DECIMAL(12,2)
    DECLARE @MonthVal VARCHAR(20), @SpreadKeyVal INT
    DECLARE @sqlcmd AS NVARCHAR(150)
    DECLARE @paramdef NVARCHAR(150)
    SET @MonthVal = 'Month' + CAST(@MonthNumber AS VARCHAR(2) );
    SET @SpreadKeyVal = @SpreadKey; --CAST(@SpreadKey AS VARCHAR(10) );
    SET @sqlcmd = N' SELECT @retvalout = @MonthVal FROM dbo.CourseSpread WHERE CourseSpreadId = @SpreadKeyVal';
    SET @paramdef = N'@MonthVal VARCHAR(20), @SpreadKeyVal INT, @retvalout DECIMAL(12,2) OUTPUT'
    --default
    SET @retval = 0.0;
    EXECUTE sys.sp_executesql @sqlcmd,@paramdef, @MonthVal = 'Month4',@SpreadKeyVal = 1, @retvalout = @retval OUTPUT;
    SELECT @retval
    DECLARE @return_value DECIMAL(12,2)
    EXEC @return_value = [dbo].[GetSpreadValueByMonthNumber]
    @SpreadKey = 1,
    @MonthNumber = 4
    SELECT 'Return Value' = @return_value
    Msg 8114, Level 16, State 5, Line 1
    Error converting data type varchar to numeric.

    Please follow basic Netiquette and post the DDL we need to answer this. Follow industry and ANSI/ISO standards in your data. You should follow ISO-11179 rules for naming data elements. You should follow ISO-8601 rules for displaying temporal data. We need
    to know the data types, keys and constraints on the table. Avoid dialect in favor of ANSI/ISO Standard SQL. And you need to read and download the PDF for: 
    https://www.simple-talk.com/books/sql-books/119-sql-code-smells/
    >> I need to select from a dynamic column name and save the result in a variable, but seem to be having trouble with the values being fed to sp_executesql <<
    This is so very, very wrong! A column is an attribute of an entity. The idea that you are so screwed up that you have no idea if you want
    the shoe size, the phone number or something else at run time of this entity. 
    In Software Engineering we have a principle called cohesion that says a model should do one and only one task, have one and only one entry point, and one and only one exit point. 
    Hey, on a scale from 1 to 10, what color is your favorite letter of the alphabet? Yes, your mindset is that level of sillyity and absurdity. 
    Do you know that SQL is a declarative language? This family of languages does not use local variables! 
    Now think about “month_val” and what it means. A month is a temporal unit of measurement, so this is as silly as saying “liter_val” in your code. Why did you use “sp_” on a procedure? It has special meaning in T-SQL.  
    Think about how silly this is: 
     SET @month_val = 'Month' + CAST(@month_nbr AS VARCHAR(2));
    We do not do display formatting in a query. This is a violation of at the tiered architecture principle. We have a presentation layer. But more than that, the INTERVAL temporal data type is a {year-month} and never just a month. This is fundamental. 
    We need to see the DDL so we can re-write this mess. Want to fix it or not?
    --CELKO-- Books in Celko Series for Morgan-Kaufmann Publishing: Analytics and OLAP in SQL / Data and Databases: Concepts in Practice Data / Measurements and Standards in SQL SQL for Smarties / SQL Programming Style / SQL Puzzles and Answers / Thinking
    in Sets / Trees and Hierarchies in SQL

  • Dynamic column names in Oracle

    HI SOS!! calling for help...
    i am trying to query the following. I want to remove the duplicates in the ID, and combine them into one... While doing so, I want to keep the data as it is by creating dynamic columns reason_1, reason_2, reason_3 with their corresponding TIME. In case of same reasons, I want to add the TIME. The database is as follows:
    ID     REASON     TIME
    A     41A..........     27
    A     93K..........16
    B     89C...........3
    B     93K...........7
    B     48C..........     4
    C     93K..........     24
    C     93K..........     7
    C     48C.........10
    Expected Result is
    ID     REASON_1......TIME_1.... REASON_2...TIME_2....REASON_3.........TIME_3
    A........ 41A............ 27........... 93K............16          
    B........ 89C............ 3............ 93K............7...........48C.................. 4
    C........ 93K........... 31.......... 48C..............10          
    Would be grateful if someone could try helping me out of this as early as possible.
    Edited by: 968125 on Oct 28, 2012 11:01 PM

    You still haven't made it clear what the requirement is.
    Is there a maximum number of reasons that can occur per ID? If so, you can code the pivoting of your data with something like:
    SQL> ed
    Wrote file afiedt.buf
      1  with t as (select 'A' as ID, '41A' as reason, 27 as time from dual union all
      2             select 'A', '93K', 16 from dual union all
      3             select 'B', '89C', 3 from dual union all
      4             select 'B', '93K', 7 from dual union all
      5             select 'B', '48C', 4 from dual union all
      6             select 'C', '93K', 24 from dual union all
      7             select 'C', '93K', 7 from dual union all
      8             select 'C', '48C', 10 from dual)
      9  --
    10  -- END OF TEST DATA TABLE SIMULATED USING 'WITH' CLAUSE
    11  -- SIMPLY USE THE SELECT STATEMENT BELOW ON YOUR OWN TABLE
    12  --
    13  select id
    14        ,max(decode(rn,1,reason)) as reason_1
    15        ,max(decode(rn,1,time)) as time_1
    16        ,max(decode(rn,2,reason)) as reason_2
    17        ,max(decode(rn,2,time)) as time_2
    18        ,max(decode(rn,3,reason)) as reason_3
    19        ,max(decode(rn,3,time)) as time_3
    20        ,max(decode(rn,4,reason)) as reason_4
    21        ,max(decode(rn,4,time)) as time_4
    22        ,max(decode(rn,5,reason)) as reason_5
    23        ,max(decode(rn,5,time)) as time_5
    24  from (/* assign some row numbers within each ID, ordering by 'reason' then 'time' */
    25        select id, reason, time
    26              ,row_number() over (partition by id order by reason, time) as rn
    27        from   t
    28       )
    29* group by id
    SQL> /
    I REA     TIME_1 REA     TIME_2 REA     TIME_3 REA     TIME_4 REA     TIME_5
    A 41A         27 93K         16
    B 48C          4 89C          3 93K          7
    C 48C         10 93K          7 93K         24In this example, it will cater for up to 5 reasons/times per ID... and you can code for more if you need very easily.
    Also, as you're using 11g, you can use the new PIVOT query, for which you can find plenty of examples if you google or search these forums, or follow the FAQ link.
    If you don't have any idea how many reasons there could be, then you really are looking at generating columns dynamically.
    The problem with that is, because Oracle needs to know the SQL projection (see the FAQ link already provided), it has to know how many columns are going to be returned from a query before any data is fetched... but you are saying that the columns returned have to be based on the data itself. To do that you have two main options:
    1) You query the data once to determine how many columns you are going to need and then dynamically build up a query in PL/SQL code with the right number of columns (or use one of the other dynamic methods shown in the FAQ)
    or
    2) You step back and ask yourself if SQL is really the best place to be trying to produce this output. Reporting tools are often better suited to this requirement as they are made to query the data back from a database and then pivot and layout the data based on the data returned.

  • Best way to spool DYNAMIC SQL query to file from PL/SQL

    Best way to spool DYNAMIC SQL query to file from PL/SQL [Package], not SqlPlus
    I'm looking for suggestions on how to create an output file (fixed width and comma delimited) from a SELECT that is dynamically built. Basically, I've got some tables that are used to define the SELECT and to describe the output format. For instance, one table has the SELECT while another is used to defined the column "formats" (e.g., Column Order, Justification, FormatMask, Default value, min length, ...). The user has an app that they can use to customize the output...which leaving the gathering of the data untouched. I'm trying to keep this formatting and/or default logic out of the actual query. This lead me into a problem.
    Example query :
    SELECT CONTRACT_ID,PV_ID,START_DATE
    FROM CONTRACT
    WHERE CONTRACT_ID = <<value>>Customization Table:
    CONTRACT_ID : 2,Numeric,Right
    PV_ID : 1,Numeric,Mask(0000)
    START_DATE : 3,Date,Mask(mm/dd/yyyy)The first value is the kicker (ColumnOrder) as well as the fact that the number of columns is dynamic. Technically, if I could use SqlPlus...then I could just use SPOOL. However, I'm not.
    So basically, I'm trying to build a generic routine that can take a SQL string execute the SELECT and map the output using data from another table to a file.
    Any suggestions?
    Thanks,
    Jason

    You could build the select statement within PL/SQL and open it using a cursor variable. You could write it to a file using the package 'UTL_FILE'. If you want to display the output using SQL*Plus, you could have an out parameter as a ref cursor.

  • BUG? ORA-01461 in Unit Tester when saving a long Dynamic Value Query

    I get an ORA-01461 "can bind a LONG value only for insert into a LONG column" error when saving a Test Implementation with a Dynamic Value Query whose length of the SQL statement is roughly 2,000 characters - I'm UNIONing ALL about 30 test case values together, but it seems to be choking on such a long SQL string for some reason....
    I am running version Early Adopter Release #2 (2.1.0.63), build MAIN-63.10.
    Thoughts?

    Confirmed.
    Bug 9119144: ORA-01461 IN UNIT TESTER WHEN SAVING A LONG DYNAMIC VALUE QUERY (OR OTHER CLOB)
    Brian Jeffries
    SQL Developer Team

  • SSRS - Stored procedure with Dynamic SQL Query

    Am calling stored procedure in SSRS report.  I have used Dynamic SQL query in stored procedure as I don't know the column name and column count.  And I have used like below at end of the stored procedure "select * from ##temptable".
    As I have used dynamic column, am not able to create report with this stored procedure.  Can someone help me out to resolve this issue.
    It will be highly appreciated if I get help. 
    Thanks

    I have tried everything.  But nothing has worked out. 
    If I get solution for below issue, it would be highly appreciated.
    "An error occurred during local report processing.
    The definition of the repport 'Main Report' is invalid.
    The report defintion is not valid.  Details: The report definition has an invalid target namespace 'http://schemas.microsoft.com/sqlserver/reporting/2010/01/reportdefinition' which cannot be upgraded.
    Thanks
    Hello,
    I would suggest you post the complete error message to us for further investigation, if you preview the report before you deploy you may get a more detailed error that will help diagnose the source of the problem.
    This issue is more related to SQL Server Reporting Services, it's more appropriate to discuss it in the forum below:
    https://social.technet.microsoft.com/Forums/sqlserver/en-US/home?forum=sqlreportingservices
    Don't forget to elaborate your issue with more detail.
    For the manual column, it might be the calculated field in SSRS. Here is the article for your reference, please see:
    http://technet.microsoft.com/en-us/library/dd239322(v=sql.110).aspx
    Regards,
    Elvis Long
    TechNet Community Support

  • Handling ALV Layout & Dynamic Columns

    I have a custom report for Purchasing / Finance.
    1) I create 5 dynamic columns for the purchase rder invoices based on the report run date.
    Example:
    Previous Quarter   [Q4 2009]  [Q1 2010]   [Q2 2010]  [Q3 2010]
    My query is that this report has layouts defined. I want to add the dynamic columns to the report output.
    Example:  In the below scenario i have dynamic columns in the  fieldcat[] but the report shows only the columns defined in the layout selected. 
    disvariant-VARIANT has the layout selected from the seelction screen of the report.
    Also fieldcat-tabname = '<fs_table> '.
    CALL METHOD alv_grid->set_table_for_first_display
       EXPORTING
          is_variant                    = disvariant
          i_save                         = 'A'
          is_layout                     = layout
          is_print                        = print
       CHANGING
          it_outtab                     = <fs_table>
          it_fieldcatalog             = fieldcat[]
          it_sort                         = sort[]
       EXCEPTIONS
         invalid_parameter_combination = 1
         program_error                 = 2
         too_many_lines                = 3
         OTHERS                        = 4
    Appreciate if anyone knows the solution.

    I don't believe you can display the dynamic columns and still use the variant from the selection screen.
    Have you considered using multiple table rows for the multiple time periods?
    If you will always have 5 dynamic columns, maybe you can make them not dynamic and just make the column header text dynamic?

  • CFChart Dynamic Column HELP

    I looked over the posts on CFChart but did not find anything
    that addresses my specific problem with the cfchart. So if you can
    help, I'd appreciate it very much!
    What I want to do is take the dynamic name of the column
    derived from the first query and use that name in the Legend. E.G.
    A_R1_DIS is the first dataset, A_R1_J is the second dataset, and
    A_R1_PPLI is the third dataset. Then show a line graph with each
    dataset based on the first query. The X Axis displays the Date/Time
    value and the Y Axis displays the number of points for each record
    of time for each dataset individually. I was able yesterday to get
    all three datasets to display individually but when I tried to show
    the legend it either displayed only the first Dataset name
    "A_R1_DIS" or it displayed "NONE". Currently the code will not
    display any line on the chart and the legend repeats the A_R1_DIS
    as many times as there are records in the table (60+).
    I use the following query to get the dynamic column name
    "SelectedDatasetColName" from the MasterDataList table.
    <CFQUERY name="getSelectedDatasetColName"
    datasource="#getcfdbname.EventCFDBName#">
    SELECT MDL_TestName + '_' + MDL_DatasetID + '_' +
    MDL_MeaningfulName as SelectedDatasetColName
    FROM MasterDataList
    </CFQUERY>
    Here is where I'm using the "SelectedDatasetColName" value:
    ******************************************* queries
    <CFQUERY name="DatasetHistogramQry"
    datasource="#getcfdbname.EventCFDBName#">
    SELECT
    <cfset i = 1>
    <cfloop query="getSelectedDatasetColName">
    #SelectedDatasetColName# as col#i#,
    <cfset i = i + 1>
    </cfloop>
    JDay, TheHour, TheMinute,
    convert(varchar(12), JDay, 114) + ' ' + convert(varchar(12),
    TheHour, 114) + ':' + convert(varchar(12), TheMinute, 114) as
    DateTime
    FROM vPositionHistogram
    ORDER BY JDay, TheHour, TheMinute
    </CFQUERY>
    Here is the code for the table; which works correct:
    **************************** Report Code
    <TABLE>
    <TR>
    <TH>Day</TH>
    <TH>Hour</TH>
    <TH>Minute</TH>
    <CFOUTPUT QUERY="getSelectedDatasetColName">
    <TH>#SelectedDatasetColName# Message Count</TH>
    </CFOUTPUT>
    </TR>
    <CFOUTPUT QUERY="DatasetHistogramQry">
    <TR BGCOLOR="###IIF(DatasetHistogramQry.currentrow MOD 2,
    DE('DCDCDC'), DE('FFFFFF'))#">
    <TD ALIGN="center">#JDay#</TD>
    <TD ALIGN="center">#TheHour#</TD>
    <TD ALIGN="center">#TheMinute#</TD>
    <CFSET i = 1>
    <CFLOOP INDEX="X" FROM="1"
    TO="#getSelectedDatasetColName.recordcount#">
    <TD ALIGN="center">#evaluate("col#i#")#</TD>
    <CFSET i = i + 1>
    </CFLOOP>
    </TR>
    </CFOUTPUT>
    </TABLE>
    Here is the output for the table; Dynamic Column Name used to
    repeat counts for each dataset.
    ********************************* output
    Day Hour Minute A_R1_DIS Message Count A_R1_J Message Count
    A_R1_PPLI Message Count
    37 17 36 0 2 35
    37 17 37 19 6 32
    37 17 38 28 30 33
    37 17 39 40 27 27
    37 17 40 66 64 32
    Here is the problem code. I have tried several variations on
    this code but currently all it does is display a blank chart.
    **************************** Chart Code
    <CFCHART FORMAT="flash" CHARTHEIGHT="340" CHARTWIDTH="600"
    SHOWXGRIDLINES="yes" SHOWYGRIDLINES="yes" SHOWBORDER="no"
    FONTBOLD="no" FONTITALIC="no" XAXISTITLE="Timeline (Day
    Hour:Minute)" YAXISTITLE="Message Counts" SHOW3D="no" ROTATED="no"
    SORTXAXIS="no" SHOWLEGEND="yes" TIPSTYLE="MouseOver"
    SHOWMARKERS="no">
    <CFOUTPUT QUERY="DatasetHistogramQry">
    <CFSET i = 1>
    <CFLOOP INDEX="X" FROM="1"
    TO="#getSelectedDatasetColName.recordcount#">
    <CFCHARTSERIES QUERY="DatasetHistogramQry" TYPE="line"
    ITEMCOLUMN="#DateTime#" VALUECOLUMN="#evaluate("col#i#")#"
    SERIESLABEL="#getSelectedDatasetColName.SelectedDatasetColName#">
    <CFSET i = i + 1>
    </CFLOOP>
    </CFOUTPUT>
    </CFCHART>
    Please let me know if you need any additional info on my
    problem and if you can help, it is greatly appreciated!!!!
    - Debra

    DateTime is a column in the vPositionHistogram (View). Col#i#
    is the variable used to loop through the column names derived from
    the getSelectedDatasetColName query. The view is populated
    dynamically and the columns in it vary depending on the dataset
    used to populate the view. The view can have 1 to many columns.
    That is why I pull the column names from the MasterDataList table
    and use a variable to get the values from each column. My column
    names end up being Col1, Col2, Col3, and so on. I use that variable
    in the loop to get the data from vPositionHistogram for each column
    in the report/chart. I made some headway on Friday before I called
    it a day, but I will try the last suggestion and post my findings
    in a little while. Thanks!

Maybe you are looking for

  • Want to see combination of Purchase Order and A/P report at material level

    Hello, Anyone familiar with an InfoProvider that will show a combination of Purchase Order and A/P data combined? I'm specifically looking for a source that includes the PO information at the <b>Vendor / Material</b> level with order value and quanti

  • Guidance for getting material master data from database table

    Hi, I need guidance to fetch following Material master data from the system data base.Please guide me for the same. BASIC DATA1 BASIC DATA2 MRP1,2,3,4 WORK SCHEDULING QUALITY MANAGEMENT ACCOUNTING1 ACCOUNTING2 COSTING1,2 PURCHASING PURCHASE ORDER TEX

  • Apple's time server WRONG for Argentina

    Due to the Argentine's governments choice NOT to implement day-light savings this year, the Apple time server is an hour off from the official time in Argentina. This screws up my iCal.

  • Reg Plant Maintenance Module

    There is a smartform developed for my client instead of SAPSCRIPT for program RIPCT00(i.e TCODE - IW32).  In smartform client wants to have 2 fields. 1 - How many Maintenance order created of the eqiupment 2 - Last Maintenance order of selected equip

  • IPhone 3G not restarting...  Help!

    This morning, like every other morning I left the house and put on some music. About 5 minutes later the music stopped suddenly and my phone froze. It took nearly 10 minutes for it to reboot. It's now stuck in a loop of restarting, and getting as far