Help with a COLLECT statement.
I had to make changes to some code and these changes required me to add some fields to an internal table. Below is what the table looked like before I made any changes:
DATA : BEGIN OF t_frgroup OCCURS 0,
BEGIN CHANGE 02/11/03
hazmat TYPE c,
END CHANGE 02/11/03
mfrgr LIKE lips-mfrgr,
brgew LIKE lips-brgew,
lfimg LIKE lips-lfimg,
qtypal LIKE w_nbr_palletsx,
qtypce LIKE w_nbr_palletsx,
vstel LIKE likp-vstel,
no_cnvrt TYPE c,
END OF t_frgroup.
This is what it looked like after I made the changes:
DATA : BEGIN OF t_frgroup OCCURS 0,
BEGIN CHANGE 02/11/03
hazmat TYPE c,
END CHANGE 02/11/03
mfrgr LIKE lips-mfrgr,
brgew LIKE lips-brgew,
lfimg LIKE lips-lfimg,
qtypal LIKE w_nbr_palletsx,
qtypce LIKE w_nbr_palletsx,
vstel LIKE likp-vstel,
no_cnvrt TYPE c,
matnr TYPE lips-matnr,
vbeln TYPE lips-vbeln,
posnr TYPE lips-posnr,
qty LIKE vblkp-lfimg,
vrkme LIKE lips-vrkme,
converted(1) TYPE c VALUE 'N',
END OF t_frgroup.
My issue is, after adding those fields, my collect statement no longer works:
LOOP AT t_lips.
MOVE-CORRESPONDING t_lips TO t_frgroup.
COLLECT t_frgroup.
ENDLOOP.
I need it to collect with the key being mfrgr. How can I do this? After adding the fields the collect statement now acts as an insert (I assume that matnr is now acting as the key) instead of collect.
Regards,
Aaron
Hi Aaron,
1. Define the table keys while defining your internal table.
2. The order of the fields in the structure should be that the key fields come first , then the quantity fields and amount fields next.
3. Sort the table by the key fields before the loop.
The collect statment is creating news entries because If the system finds an entry with the key fields , the numeric fields that are not part of the table key are added to the sum total of the existing entries. If it does not find an entry, the system creates a new entry instead. Clearly the system is unable to find the existing entry because the key fields are not defined in your internal table or the fields are are out of order.
Hope this helps.
A simple example depicting this is as follows :
TYPES: BEGIN OF COMPANY,
NAME(20) TYPE C,
SALES TYPE I,
END OF COMPANY.
DATA: COMP TYPE COMPANY,
COMPTAB TYPE HASHED TABLE OF COMPANY
WITH UNIQUE KEY NAME.
COMP-NAME = 'Duck'. COMP-SALES = 10. COLLECT COMP INTO COMPTAB.
COMP-NAME = 'Tiger'. COMP-SALES = 20. COLLECT COMP INTO COMPTAB.
COMP-NAME = 'Duck'. COMP-SALES = 30. COLLECT COMP INTO COMPTAB.
regards,
Advait Gode.
Edited by: Advait Gode on Mar 28, 2008 3:50 PM
Similar Messages
-
Need help with the session state value items.
I need help with the session state value items.
Trigger is created (on After delete, insert action) on table A.
When insert in table B at least one row, then trigger update value to 'Y'
in table A.
When delete all rows from a table B,, then trigger update value to 'N'
in table A.
In detail report changes are visible, but the trigger replacement value is not set in session value.
How can I implement this?You'll have to create a process which runs after your database update process that does a query and loads the result into your page item.
For example
SELECT YN_COLUMN
FROM My_TABLE
INTO My_Page_Item
WHERE Key_value = My_Page_Item_Holding_Key_ValueThe DML process will only return key values after updating, such as an ID primary key updated by a sequence in a trigger.
If the value is showing in a report, make sure the report refreshes on reload of the page.
Edited by: Bob37 on Dec 6, 2011 10:36 AM -
Help with this update statement..
Hi everyone,
I am trying to update a column in a table .I need to update that column
with a function that takes patient_nbr and type_x column values as a parameter.
That table has almost "300,000" records. It is taking long time to complete
almost 60 min to 90 min.
Is it usual to take that much time to update that many records?
I dont know why it is taking this much time.Please help with this update statement.
select get_partner_id(SUBSTR(patient_nbr,1,9),type_x) partner_id from test_load;
(it is just taking 20 - 30 sec)
I am sure that it is not the problem with my function.
I tried the following update and merge statements .Please correct me if i am wrong
in the syntax and give me some suggestions how can i make the update statement fast.
update test_load set partner_id = get_partner_id(SUBSTR(patient_nbr,1,9),type_x);
merge into test_load a
using (select patient_nbr,type_x from test_load) b
on (a.patient_nbr = b.patient_nbr)
when matched
then
update
set a.partner_id = get_partner_id(SUBSTR(b.patient_nbr,1,9),b.type_x);
there is a index on patient_nbr column
and the statistics are gathered on this table.Hi Justin,
As requested here are the explain plans for my update statements.Please correct if i am doing anything wrong.
update test_load set partner_id = get_partner_id(SUBSTR(patient_nbr,1,9),type_x);
"PLAN_TABLE_OUTPUT"
"Plan hash value: 3793814442"
"| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |"
"| 0 | UPDATE STATEMENT | | 274K| 4552K| 1488 (1)| 00:00:18 |"
"| 1 | UPDATE | TEST_LOAD | | | | |"
"| 2 | TABLE ACCESS FULL| TEST_LOAD | 274K| 4552K| 1488 (1)| 00:00:18 |"
merge into test_load a
using (select patient_nbr,type_x from test_load) b
on (a.patient_nbr = b.patient_nbr)
when matched
then
update
set a.partner_id = get_partner_id(SUBSTR(b.patient_nbr,1,9),b.type_x);
"PLAN_TABLE_OUTPUT"
"Plan hash value: 1188928691"
"| Id | Operation | Name | Rows | Bytes |TempSpc| Cost (%CPU)| Time |"
"| 0 | MERGE STATEMENT | | 274K| 3213K| | 6660 (1)| 00:01:20 |"
"| 1 | MERGE | TEST_LOAD | | | | | |"
"| 2 | VIEW | | | | | | |"
"|* 3 | HASH JOIN | | 274K| 43M| 7232K| 6660 (1)| 00:01:20 |"
"| 4 | TABLE ACCESS FULL| TEST_LOAD | 274K| 4017K| | 1482 (1)| 00:00:18 |"
"| 5 | TABLE ACCESS FULL| TEST_LOAD | 274K| 40M| | 1496 (2)| 00:00:18 |"
"Predicate Information (identified by operation id):"
" 3 - access("A"."patient_nbr"="patient_nbr")"Please give some suggestions..
what's the best approach for doing the updates for huge tables?
Thanks -
Please help me with a CASE Statement:
- When ID = 15, 16, 17, 18 then "Bad"
- when ID = 19, then "Average"
- when ID = 21, then "Good"
- else "Null"
Thank you!!Well the 1st thing to do would be to correct my poor spelling... change Delault : to Default :
Don't know why you would get an error stating "The result of selection formula must be a boolean". It's working fine on my machine.
If your ID field is numbers stored text you have a couple different options...
1) Convert the ID to a number...
Select ToNumber({home.noone_ID})
2) Wrap the ID values in double quotes...
Case "15", "16", "17", "18" :
"BAD"
Even if this were your problem... the error should be something other than the boolean thing...
Jason -
Help with a return statement please!
hey, just hoping somone can help me with this return statement
i have to add a method called "specialReport" this method takes a year as it's parameter. if the parameter is not a year between 1930 and 1969 inclusive it displays an error message, "not a valid year"
if the parameter is a valid year, then it compares the parameter with the year field. if they are the same, and is the movie has been rented at least five times, the method will display the message "a good year for movies" if the years are different or the movie has NOT been rented at least five times, the method displays the message "try a different year"
btw, the Year field is : yearReleased
all help is very much appreciated!public void specialReport(int year){
//add functionality to process here
return;
} -
Looking for some help with building insert statements...
Hi, I am using some sql to build some insert statements for me to update a set of tables in our qa environments. The scripts that I have created were working great until someone added a column to some of the tables in the qa env which in turn makes my scripts break because I was simply building the statment to do someting like this...
insert into dest_table (select * from source_table@dblink);
But now when the coumns in the tables do not match it breaks...
This is the dynamic create script I use, can anyone help or suggest a better way to be able to build update statements update to qa tables when the columns are mismatched?
spool insert.sql
select
'insert into ' || table_name || ' (select * from ' || table_name || '@prod );' || chr(10) || ' commit;'
from user_tables
where table_name in
(select * from refresh_tablesl)
any help is greatly appreciated,
Thanks.See my reply to your duplicate post
looking for help building dynamic insert statements... -
Help with multiple case statements
Hello,
I am new to BO. I am on XI 3.0. SQL 2005. In Designer, I am trying to create a measure in a financial universe that would end up being multiple case statements within one select. This is what I tried to do, but it doesn't work with the two case statements. Can I use an ELSE leading into the second CASE WHEN somehow? How can I accomplish this? Sorry for my ignorance!
CASE WHEN dbo.ClientBudgetYear.DateStage1Approved > 01/01/1900 AND dbo.ClientBudgetMonth.Month = 12 THEN dbo.ClientBudgetMonth.Stage1Sales END
CASE WHEN dbo.ClientBudgetYear.DateStage1Approved > 01/01/1900 AND dbo.ClientBudgetMonth.Month = 11 THEN dbo.ClientBudgetMonth.Stage1Sales END
Any Suggestions?
Thanks,
HollyHolly,
I don't know enough about your data or requirement to provide a solution, however, the construct that you post will not work because it causes you to build an object with multiple case statements when only one case statement per object is permitted. From what I see in your code I would be inclined to combine the two statements into one as such:
CASE WHEN dbo.ClientBudgetYear.DateStage1Approved > 01/01/1900 AND dbo.ClientBudgetMonth.Month in (11,12) THEN dbo.ClientBudgetMonth.Stage1Sales else null END
Thanks,
John -
Help with a select statement from a SQL Server within a DTS !!
Hello Gurus!
I help with the script bellow, when I run it within DTS (in SQL Sever 2000), I got the error Invalid number/or not a valid month.
Please bellow with the WHERE CLASUE '08/01/2001' AND '03/09/2002'
And in the other hand I change this forma to '01-AUG-01' AND
'03-MAR-2002', the DTS start and run witha successful messages, but it does not returns row, which is wrong.
Somebady please help!
Thanks Gurus!
GET Total ANIs with Trafic By Area Code
select
substr(b.ct_num, 0,3) as Area_Codes,
COUNT(DISTINCT B.CT_NUM) AS ANIS
from
wasabi.v_trans A,
wasabi.V_Sur_Universal B,
wasabi.V_Sub C,
wasabi.V_Trans_Typ D
where
D.Trans_typ = A.Trans_Typ AND
A.Sur_ID = B.Sur_ID AND
C.Sub_ID = A.Sub_ID AND
a.trans_stat != 'X' AND
a.Trans_DTTM >= '08/01/2001'AND
a.Trans_DTTM < '03/09/2002 AND
B.AMA3 = 'PHONE1'
AND C.SUB_ID not in (100117)
GROUP BY
substr(b.ct_num, 0,3)
ORDER BY
Area_CodesI think that you need a "to_date" function eg
change '08/01/2001' to to_date('08/01/2001','dd/mm/yyyy') -
Help with an If Statement for a Message Dialog
Hello all! I need help yet once again! I would prefer hints and nudges rather then the answer please, as this is for a homework assignment. Okay I am supposed to write a program that has 3 text boxes to enter a number between 0 and 255 (for red green and blue) and then the user should push the show button and the background color should change, which I have all working! But I am supposed to have a " gracefully handle the situation where the user enters an invalid color value (any number less than zero or greater than 255)" and I have the if statement written, but for some reason, whenever I hit the show button it always pops up that window, no matter what the user types in. So I need help figuring out how to make it stop popping up all of the time! Here is the code: Any other ideas on how to make the code better would be much appreciated!!! Thanks in advance!
import java.awt.GridLayout;
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JTextField;
import javax.swing.JPanel;
import javax.swing.BorderFactory;
public class ColorEditor extends JPanel {
private JLabel labelRed;
private JLabel labelGreen;
private JLabel labelBlue;
private JTextField textFieldRed;
private JTextField textFieldGreen;
private JTextField textFieldBlue;
private JButton showButton;
private JButton exitButton;
private JOptionPane optionPane;
public ColorEditor()
super(new BorderLayout());
labelRed = new JLabel("red: ");
textFieldRed = new JTextField(5);
labelGreen = new JLabel("green: ");
textFieldGreen = new JTextField(5);
labelBlue = new JLabel("blue: ");
textFieldBlue = new JTextField(5);
showButton = new JButton("show");
exitButton = new JButton("exit");
JPanel labelPane = new JPanel(new GridLayout(0,1));
labelPane.add(labelRed);
labelPane.add(labelGreen);
labelPane.add(labelBlue);
labelPane.add(showButton);
JPanel fieldPane = new JPanel( new GridLayout(0,1));
fieldPane.add(textFieldRed);
fieldPane.add(textFieldGreen);
fieldPane.add(textFieldBlue);
fieldPane.add(exitButton);
setBorder(BorderFactory.createEmptyBorder(40,40,40,40));
add(labelPane, BorderLayout.LINE_START);
add(fieldPane, BorderLayout.CENTER);
TextFieldHandler handler = new TextFieldHandler();
textFieldRed.addActionListener(handler);
textFieldGreen.addActionListener(handler);
textFieldBlue.addActionListener(handler);
showButton.addActionListener(handler);
private class TextFieldHandler implements ActionListener
public void actionPerformed(ActionEvent event)
if (event.getSource() == showButton)
String textRed = textFieldRed.getText();
String textGreen = textFieldGreen.getText();
String textBlue = textFieldBlue.getText();
int a = Integer.parseInt(textRed);
int b = Integer.parseInt(textGreen);
int c = Integer.parseInt(textBlue);
if ((a < 0) || (a > 255)||(b<0)||(b>255)||(c<0)||(c>255));
optionPane.showMessageDialog(null, "Please enter a number between 0 and 255!");//HERE IS WHERE I NEED THE HELP!!
Color colorObject = new Color(a,b,c);
setBackground(colorObject);
public static void main(String args[])
JFrame frame = new JFrame("Color Editor");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE );
frame.add(new ColorEditor());
frame.pack();
frame.setVisible(true);
}Okay now Eclipse is giving me a really funky error that I cannot quite figure out (in the compiler) but my program is running fine.... Can you help me with this too?
Here is what the compiler is giving me....
Exception in thread "AWT-EventQueue-0" java.lang.IllegalArgumentException: Color parameter outside of expected range: Green
+ at java.awt.Color.testColorValueRange(Unknown Source)+
+ at java.awt.Color.<init>(Unknown Source)+
+ at java.awt.Color.<init>(Unknown Source)+
+ at ColorEditor$TextFieldHandler.actionPerformed(ColorEditor.java:80)+
+ at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)+
+ at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)+
+ at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)+
+ at javax.swing.DefaultButtonModel.setPressed(Unknown Source)+
+ at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)+
+ at java.awt.Component.processMouseEvent(Unknown Source)+
+ at javax.swing.JComponent.processMouseEvent(Unknown Source)+
+ at java.awt.Component.processEvent(Unknown Source)+
+ at java.awt.Container.processEvent(Unknown Source)+
+ at java.awt.Component.dispatchEventImpl(Unknown Source)+
+ at java.awt.Container.dispatchEventImpl(Unknown Source)+
+ at java.awt.Component.dispatchEvent(Unknown Source)+
+ at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)+
+ at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)+
+ at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)+
+ at java.awt.Container.dispatchEventImpl(Unknown Source)+
+ at java.awt.Window.dispatchEventImpl(Unknown Source)+
+ at java.awt.Component.dispatchEvent(Unknown Source)+
+ at java.awt.EventQueue.dispatchEvent(Unknown Source)+
+ at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)+
+ at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)+
+ at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)+
+ at java.awt.EventDispatchThread.pumpEvents(Unknown Source)+
+ at java.awt.EventDispatchThread.pumpEvents(Unknown Source)+
+ at java.awt.EventDispatchThread.run(Unknown Source)+ -
Help with Nesting DECODE statements
Hello. I'm trying to write a sql script to generate data report for payments. I need to incorporate specific conditions to SUPPRESS BLANK ADDRESS field lines. I am pulling Address_Line1, Address_Line2, Address_Line3, plus CITY, STATE, ZIP as Address_Line4. If any fields are blank, I need to suppress the blank line and move the other lines up.
Here are my IF, THEN, ELSE conditions. There are 9 possible scenarios that I have identified. Can you please help me write this in SQL with the DECODE function?
IF CITY||STATE||ZIP IS NULL
THEN AD1='12115 Rainbow Road', AD2='Hartford Heights, MO 60226'
ELSE
IF ADDRESS_LINE1 IS NULL
IF ADDRESS_LINE2 IS NULL
IF ADDRESS_LINE3 IS NULL
THEN USE HOME ADDRESS
ELSE vAD1=ADDRESS_LINE3, vAD2=CITY||STATE||ZIP
ENDIF
ELSE
IF ADDRESS_LINE3 IS NULL
THEN vAD1=ADDRESS_LINE2, vAD2 = CITY||STATE||ZIP
ELSE vAD1=ADDRESS_LINE2, vAD2=ADDRESS_LINE3, vAD3=CITY||STATE||ZIP
ENDIF
ENDIF
ELSE
IF ADDRESS_LINE2 IS NULL
IF ADDRESS_LINE3 IS NULL
THEN vAD1=ADDRESS_LINE1, vAD2=CITY||STATE||ZIP
ELSE vAD1=ADDRESS_LINE1, vAD2=ADDRESS_LINE3, vAD3=CITY||STATE||ZIP
ENDIF
ELSE
IF ADDRESS_LINE3 IS NULL
THEN vAD1=ADDRESS_LINE1, vAD2=ADDRESS_LINE2, vAD3=CITY||STATE||ZIP
ELSE vAD1=ADDRESS_LINE1, vAD2=ADDRESS_LINE2, vAD3=ADDRESS_LINE3, vAD4=CITY||STATE||ZIP
ENDIF
ENDIF
ENDIF
ENDIF
This what I've got so far...
DECLARE
vADR1
vADR2
vADR3
vADR4
BEGIN
SELECT
DECODE(
END;
/Hi,
Here is the code along with some sample data. I substitute the "+" symbol for "/" becuase some addresses where using "c/o" in the address line.
The address fields are null, as shown by the query below (ref query results below):
SQL> select address_line1
2 from po.po_vendor_sites_all
3 where address_line1='3457 SOLUTIONS CENTER'
4 and address_line2 is null;
ADDRESS_LINE1
3457 SOLUTIONS CENTERHere is the script:
WITH got_delimited_list AS
SELECT address_line1 || ' +' ||
address_line2 || ' +' ||
address_line3 || ' +' ||
city ||', ' || state ||' ' || zip AS delimited_list
FROM po.po_vendor_sites_all
SELECT REGEXP_SUBSTR (delimited_list, '[^+]+', 1, 1) AS vad1
, REGEXP_SUBSTR (delimited_list, '[^+]+', 1, 2) AS vad2
, REGEXP_SUBSTR (delimited_list, '[^+]+', 1, 3) AS vad3
, REGEXP_SUBSTR (delimited_list, '[^+]+', 1, 4) AS vad4
FROM got_delimited_list;Sample of the data records returned:
VAD1
VAD2
VAD3
VAD4
3457 SOLUTIONS CENTER
CHICAGO, IL 60677-3004
VAD1
VAD2
VAD3
VAD4
5172 EAGLE WAY
CHICAGO, IL 60678-1517
VAD1
VAD2
VAD3
VAD4
RETAILERS' OCCUPATION TAX
SPRINGFIELD, IL 62796-0001
VAD1
VAD2
VAD3
VAD4
DEPT. NUMBER 478150
P.O. BOX 790100
ST LOUIS, MO 63179-9933
VAD1
VAD2
VAD3
VAD4
P.O. BOX 62251
BALTIMORE, MD 21264-2251
VAD1
VAD2
VAD3
VAD4
P.O. BOX 660481
DALLAS, TX 75266-0481
VAD1
VAD2
VAD3
VAD4
3525 PIEDMONT RD.
BUILDING FIVE
SUITE 300
ATLANTA, GA 30305 -
Need help with **** Invalid Cursor State ****
Hi,
can someone tell me why am i getting this error....
//******java.sql.SQLException: [Microsoft][ODBC Driver Manager] Invalid cursor state
Any help is greatly appreciated.....
Thanks in advance.
//***********this is the output on servlet side**************//
Starting service Tomcat-Standalone
Apache Tomcat/4.0.3
Starting service Tomcat-Apache
Apache Tomcat/4.0.3
init
DBServlet init: Start
DataAccessor init: Start
Accessor init: Loading Database Driver: sun.jdbc.odbc.JdbcOdbcDriver
DataAccessor init: Getting a connection to - jdbc:odbc:SCANODBC
username SYSDBA
password masterkey
DataAccessor init: Preparing searchPolicy
DataAccessor init: Prepared policySearch
DataAccessor init: Prepared ssnSearch
DataAccessor init: End
After the myDataAccessor
Database Connection...
in doGet(...)
SSSSSSSGetpolicynumber
In GetPolicyInformation
b05015195
Getting Policy Informaton for = b05015195
okay, building vector for policy
in GetPolicyInformation for = b05015195
starting query... policy Information
finishing query... Policy Information
Inside the while(next) loop
sun.jdbc.odbc.JdbcOdbcResultSet@4db06e
sun.jdbc.odbc.JdbcOdbcResultSet@4db06e
b05015195
policy information constructor with resultset
java.sql.SQLException: [Microsoft][ODBC Driver Manager] Invalid cursor state
at sun.jdbc.odbc.JdbcOdbc.createSQLException(JdbcOdbc.java:6031)
at sun.jdbc.odbc.JdbcOdbc.standardError(JdbcOdbc.java:6188)
at sun.jdbc.odbc.JdbcOdbc.SQLGetDataString(JdbcOdbc.java:3266)
at sun.jdbc.odbc.JdbcOdbcResultSet.getDataString(JdbcOdbcResultSet.java:
5398)
at sun.jdbc.odbc.JdbcOdbcResultSet.getString(JdbcOdbcResultSet.java:326)
at sun.jdbc.odbc.JdbcOdbcResultSet.getString(JdbcOdbcResultSet.java:383)
at viewscreenappletservlet.policyinformation.<init>(policyinformation.ja
va:56)
at viewscreenappletservlet.DatabaseAccessor.getPolicyInformation(Databas
eAccessor.java:145)
at viewscreenappletservlet.Servlet.policyDisplay(Servlet.java:108)
at viewscreenappletservlet.Servlet.doGet(Servlet.java:91)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:740)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at org.apache.catalina.servlets.InvokerServlet.serveRequest(InvokerServl
et.java:446)
at org.apache.catalina.servlets.InvokerServlet.doGet(InvokerServlet.java
:180)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:740)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Appl
icationFilterChain.java:247)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationF
ilterChain.java:193)
at filters.ExampleFilter.doFilter(ExampleFilter.java:149)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Appl
icationFilterChain.java:213)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationF
ilterChain.java:193)
at filters.ExampleFilter.doFilter(ExampleFilter.java:149)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Appl
icationFilterChain.java:213)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationF
ilterChain.java:193)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperV
alve.java:243)
at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline
.java:566)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.jav
a:472)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextV
alve.java:190)
at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline
.java:566)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(Authentica
torBase.java:475)
at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline
.java:564)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.jav
a:472)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:
2343)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.j
ava:180)
at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline
.java:566)
at org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatche
rValve.java:170)
at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline
.java:564)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.j
ava:170)
at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline
.java:564)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:
468)
at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline
.java:564)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.jav
a:472)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineVal
ve.java:174)
at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline
.java:566)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.jav
a:472)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
at org.apache.catalina.connector.http.HttpProcessor.process(HttpProcesso
r.java:1012)
at org.apache.catalina.connector.http.HttpProcessor.run(HttpProcessor.ja
va:1107)
at java.lang.Thread.run(Thread.java:484)
result set closed
1
sending response
Sending policy vector to applet...
Data transmission complete.1) JDBC-ODBC driver is buggy
2) Some drivers (truly speaking most of them) doesn't
support cursors or supports them in a wrong way
Paul -
Help with APEX.COLLECTIONS in v. 3.2
Hello, we are trying to create an apex.collection in our program similar to the one used in the sample application "Matrix Order 1.0"
Working Code used in "Matrix Order 1.0" is as follows:
if APEX_COLLECTION.COLLECTION_EXISTS (p_collection_name => 'MATRIX' ) then
APEX_COLLECTION.DELETE_COLLECTION (p_collection_name => 'MATRIX' );
end if;
APEX_COLLECTION.CREATE_COLLECTION_FROM_QUERY(
p_collection_name => 'MATRIX',
p_query => 'select PRO_STYLE,PRO_COLOUR,PRO_UNIT_PRICE,S,M,L,XL from MATRIX_PRODUCTS_BY_SIZE order by 1,2,3' );
What we've tried in ours is as follows:
if APEX_COLLECTION.COLLECTION_EXISTS (p_collection_name => 'TRAINING' ) then
APEX_COLLECTION.DELETE_COLLECTION (p_collection_name => 'TRAINING' );
end if;
APEX_COLLECTION.CREATE_COLLECTION_FROM_QUERY(
p_collection_name => 'TRAINING',
p_query => 'select * from IDEAS_USERS_VIEW' );
End result is a message stating "no data found"
Any thoughts?
Additional information:
we've tried above creating a view from a table, we've also tried putting the table name right in the query field - same results.
we've also tried several over variations of the code found on the web such as the following:
APEX_COLLECTION.CREATE_COLLECTION_FROM_QUERY(
p_collection_name => 'TRAINING',
p_query => 'select * from IDEAS_USERS_VIEW' ,
p_generate_md5 => 'NO' );
Again - same result - "no data found"
Please Help!My teammate figured it out.
the problem was under the Conditional Processing section they had the following set:
Condition Type = "Request = Expression 1"
Expression 1 = NEW
Solution was to set to "No Condition" and deleted the value of "NEW"
I'm sure we'll be back soon with questions on how to update and store it.... stay tuned. -
Help with nested if statements
Can anyone see what is wrong with this? The parameter value is 3. I commented out 4-12 to narrow down the issue. If I run it like this, I get 0. However if I comment out 1 and 2 and just leave the logic for 3, I get the actual numbers. Where is it getting stuck?
Crystal Reports 11
if {?Period} = 1 then
if {FC_COST_AREA_ACT_BUD_UNION.PERIOD_NUMBER} = 1 then
if {FC_COST_AREA_ACT_BUD_UNION.FISCAL_YEAR} = year(currentdate) then
If {FC_COST_AREA_ACT_BUD_UNION.TYPE} = "ACT"
then {FC_COST_AREA_ACT_BUD_UNION.OTHER_SUPPLIES_AND_MAINTENANCE}
else
if {?Period} = 2 then
if {FC_COST_AREA_ACT_BUD_UNION.PERIOD_NUMBER} <= 2 then
if {FC_COST_AREA_ACT_BUD_UNION.FISCAL_YEAR} = year(currentdate) then
If {FC_COST_AREA_ACT_BUD_UNION.TYPE} = "ACT"
then {FC_COST_AREA_ACT_BUD_UNION.OTHER_SUPPLIES_AND_MAINTENANCE}
else
if {?Period} = 3 then
if {FC_COST_AREA_ACT_BUD_UNION.PERIOD_NUMBER} <= 3 then
if {FC_COST_AREA_ACT_BUD_UNION.FISCAL_YEAR} = year(currentdate) then
If {FC_COST_AREA_ACT_BUD_UNION.TYPE} = "ACT"
then {FC_COST_AREA_ACT_BUD_UNION.OTHER_SUPPLIES_AND_MAINTENANCE}
//else
//if {FC_COST_AREA_ACT_BUD_UNION.FISCAL_YEAR} = year(currentdate) then
//if {?Period} = 4 then
//if {FC_COST_AREA_ACT_BUD_UNION.PERIOD_NUMBER} <= 4 then
//If {FC_COST_AREA_ACT_BUD_UNION.TYPE} = "ACT"
//then {FC_COST_AREA_ACT_BUD_UNION.OTHER_SUPPLIES_AND_MAINTENANCE}
//else
//if {FC_COST_AREA_ACT_BUD_UNION.FISCAL_YEAR} = year(currentdate) then
//if {?Period} = 5 then
//if {FC_COST_AREA_ACT_BUD_UNION.PERIOD_NUMBER} <= 5 then
//If {FC_COST_AREA_ACT_BUD_UNION.TYPE} = "ACT"
//then {FC_COST_AREA_ACT_BUD_UNION.OTHER_SUPPLIES_AND_MAINTENANCE}
//else
//if {FC_COST_AREA_ACT_BUD_UNION.FISCAL_YEAR} = year(currentdate) then
//if {?Period} = 6 then
//if {FC_COST_AREA_ACT_BUD_UNION.PERIOD_NUMBER} <= 6 then
//If {FC_COST_AREA_ACT_BUD_UNION.TYPE} = "ACT"
//then {FC_COST_AREA_ACT_BUD_UNION.OTHER_SUPPLIES_AND_MAINTENANCE}
//else
//if {FC_COST_AREA_ACT_BUD_UNION.FISCAL_YEAR} = year(currentdate) then
//if {?Period} = 7 then
//if {FC_COST_AREA_ACT_BUD_UNION.PERIOD_NUMBER} <= 7 then
//If {FC_COST_AREA_ACT_BUD_UNION.TYPE} = "ACT"
//then {FC_COST_AREA_ACT_BUD_UNION.OTHER_SUPPLIES_AND_MAINTENANCE}
//else
//if {FC_COST_AREA_ACT_BUD_UNION.FISCAL_YEAR} = year(currentdate) then
//if {?Period} = 8 then
//if {FC_COST_AREA_ACT_BUD_UNION.PERIOD_NUMBER} <= 8 then
//If {FC_COST_AREA_ACT_BUD_UNION.TYPE} = "ACT"
//then {FC_COST_AREA_ACT_BUD_UNION.OTHER_SUPPLIES_AND_MAINTENANCE}
//else
//if {FC_COST_AREA_ACT_BUD_UNION.FISCAL_YEAR} = year(currentdate) then
//if {?Period} = 9 then
//if {FC_COST_AREA_ACT_BUD_UNION.PERIOD_NUMBER} <= 9 then
//If {FC_COST_AREA_ACT_BUD_UNION.TYPE} = "ACT"
//then {FC_COST_AREA_ACT_BUD_UNION.OTHER_SUPPLIES_AND_MAINTENANCE}
//else
//if {FC_COST_AREA_ACT_BUD_UNION.FISCAL_YEAR} = year(currentdate) then
//if {?Period} = 10 then
//if {FC_COST_AREA_ACT_BUD_UNION.PERIOD_NUMBER} <= 10 then
//If {FC_COST_AREA_ACT_BUD_UNION.TYPE} = "ACT"
//then {FC_COST_AREA_ACT_BUD_UNION.OTHER_SUPPLIES_AND_MAINTENANCE}
//else
//if {FC_COST_AREA_ACT_BUD_UNION.FISCAL_YEAR} = year(currentdate) then
//if {?Period} =11 then
//if {FC_COST_AREA_ACT_BUD_UNION.PERIOD_NUMBER} <= 11 then
//If {FC_COST_AREA_ACT_BUD_UNION.TYPE} = "ACT"
//then {FC_COST_AREA_ACT_BUD_UNION.OTHER_SUPPLIES_AND_MAINTENANCE}
//else
//if {FC_COST_AREA_ACT_BUD_UNION.FISCAL_YEAR} = year(currentdate) then
//if {?Period} = 12 then
//if {FC_COST_AREA_ACT_BUD_UNION.PERIOD_NUMBER} <= 12 then
//If {FC_COST_AREA_ACT_BUD_UNION.TYPE} = "ACT"
//then {FC_COST_AREA_ACT_BUD_UNION.OTHER_SUPPLIES_AND_MAINTENANCE}
else 0Kim,
You never get there. Parenthesis will help you what is happening.
if {?Period} = 1 then
( if {FC_COST_AREA_ACT_BUD_UNION.PERIOD_NUMBER} = 1
then
( if {FC_COST_AREA_ACT_BUD_UNION.FISCAL_YEAR} = year(currentdate)
then
( If {FC_COST_AREA_ACT_BUD_UNION.TYPE} = "ACT"
then {FC_COST_AREA_ACT_BUD_UNION.OTHER_SUPPLIES_AND_MAINTENANCE}
else
if {?Period} = 2
then
( if {FC_COST_AREA_ACT_BUD_UNION.PERIOD_NUMBER} <= 2
then
( if {FC_COST_AREA_ACT_BUD_UNION.FISCAL_YEAR} = year(currentdate)
then
( If {FC_COST_AREA_ACT_BUD_UNION.TYPE} = "ACT"
then {FC_COST_AREA_ACT_BUD_UNION.OTHER_SUPPLIES_AND_MAINTENANCE}
else
if {?Period} = 3
then
( if {FC_COST_AREA_ACT_BUD_UNION.PERIOD_NUMBER} <= 3
then
( if {FC_COST_AREA_ACT_BUD_UNION.FISCAL_YEAR} = year(currentdate)
then
( If {FC_COST_AREA_ACT_BUD_UNION.TYPE} = "ACT"
then {FC_COST_AREA_ACT_BUD_UNION.OTHER_SUPPLIES_AND_MAINTENANCE}
else...
All your statements are looking for true values. You need an else statement for each failed if-then test.
if {?Period} = 1
then
( // 1
if {FC_COST_AREA_ACT_BUD_UNION.PERIOD_NUMBER} = 1
then
( // 2
if {FC_COST_AREA_ACT_BUD_UNION.FISCAL_YEAR} = year(currentdate)
then
( // 3
If {FC_COST_AREA_ACT_BUD_UNION.TYPE} = "ACT"
then {FC_COST_AREA_ACT_BUD_UNION.OTHER_SUPPLIES_AND_MAINTENANCE}
else
//what happens if it {FC_COST_AREA_ACT_BUD_UNION.TYPE} not ="ACT"
) // 3
else
//what happens if {FC_COST_AREA_ACT_BUD_UNION.FISCAL_YEAR} not= year(currentdate)
) // 2
else
//what happens if {FC_COST_AREA_ACT_BUD_UNION.PERIOD_NUMBER} not=1
) //1
// the next else is for the first failed if-then test
else
if {?Period} = 2 then...
Debi
The numbers next to the parenthesis are to help you follow them
Edited by: Debi Herbert on Apr 13, 2011 4:40 PM -
Need some help with a case statement implementation
I am having trouble using a CASE statement to compare values and then display the results. The other issue is that i want to put these results in a separate column somehow.
Heres how the code would look:
SELECT "Task"."Code",
"Stat" = CASE WHEN "Task.Code" = 1 THEN string
....and so on
I wanted to make "Stat" the new column for the results, and string represents the string to be assigned if 1 was the value for code. I keep getting syntax error, any help would be nice.This is a lot easier than you might think.
1) First, move another column of "Code" to your workspace.
2) Click on the fx button and then on the BINS tab.
3) Click on "Add BIN" and with the operand on "is equal to/is in," input 1 and then click "OK."
4) Name this what you had for "string."
Repeat for all the different values you want to rename as another "string" value.
5) Finally, check the "custom heading" checkbox, and rename this column "Stat" as you indicated.
That's it. -
Need help with Bulk Collect ForAll Update
Hi - I'm trying to do a Bulk Collect/ForAll Update but am having issues.
My declarations look like this:
CURSOR cur_hhlds_for_update is
SELECT hsh.household_id, hsh.special_handling_type_id
FROM compas.household_special_handling hsh
, scr_id_lookup s
WHERE hsh.household_id = s.id
AND s.scr = v_scr
AND s.run_date = TRUNC (SYSDATE)
AND effective_date IS NULL
AND special_handling_type_id = 1
AND created_by != v_user;
TYPE rec_hhlds_for_update IS RECORD (
household_id HOUSEHOLD_SPECIAL_HANDLING.household_id%type,
spec_handl_type_id HOUSEHOLD_SPECIAL_HANDLING.SPECIAL_HANDLING_TYPE_ID%type
TYPE spec_handling_update_array IS TABLE OF rec_hhlds_for_update;
l_spec_handling_update_array spec_handling_update_array;And then the Bulk Collect/ForAll looks like this:
OPEN cur_hhlds_for_update;
LOOP
FETCH cur_hhlds_for_update BULK COLLECT INTO l_spec_handling_update_array LIMIT 1000;
EXIT WHEN l_spec_handling_update_array.count = 0;
FORALL i IN 1..l_spec_handling_update_array.COUNT
UPDATE compas.household_special_handling
SET effective_date = TRUNC(SYSDATE)
, last_modified_by = v_user
, last_modified_date = SYSDATE
WHERE household_id = l_spec_handling_update_array(i).household_id
AND special_handling_type_id = l_spec_handling_update_array(i).spec_handl_type_id;
l_special_handling_update_cnt := l_special_handling_update_cnt + SQL%ROWCOUNT;
END LOOP;And this is the error I'm receiving:
ORA-06550: line 262, column 31:
PLS-00436: implementation restriction: cannot reference fields of BULK In-BIND table of records
ORA-06550: line 262, column 31:
PLS-00382: expression is of wrong type
ORA-06550: line 263, column 43:
PL/SQL: ORA-22806: not an object or REF
ORA-06550: line 258, column 9:
PL/SQL: SQMy problem is that the table being updated has a composite primary key so I have two conditions in my where clause. This the the first time I'm even attempting the Bulk Collect/ForAll Update and it seems like it would be straight forward if I was only dealing with a single-column primary key. Can anyone please help advise me as to what I'm missing here or how I can accomplish this?
Thanks!
ChristineYou cannot reference a column inside a record when doin a for all. You need to refer as a whole collection . So you will need two collections.
Try like this,
DECLARE
CURSOR cur_hhlds_for_update
IS
SELECT hsh.household_id, hsh.special_handling_type_id
FROM compas.household_special_handling hsh, scr_id_lookup s
WHERE hsh.household_id = s.ID
AND s.scr = v_scr
AND s.run_date = TRUNC (SYSDATE)
AND effective_date IS NULL
AND special_handling_type_id = 1
AND created_by != v_user;
TYPE arr_household_id IS TABLE OF HOUSEHOLD_SPECIAL_HANDLING.household_id%TYPE
INDEX BY BINARY_INTEGER;
TYPE arr_spec_handl_type_id IS TABLE OF HOUSEHOLD_SPECIAL_HANDLING.SPECIAL_HANDLING_TYPE_ID%TYPE
INDEX BY BINARY_INTEGER;
l_household_id_col arr_household_id;
l_spec_handl_type_id_col arr_spec_handl_type_id;
BEGIN
OPEN cur_hhlds_for_update;
LOOP
FETCH cur_hhlds_for_update
BULK COLLECT INTO l_household_id_col, l_spec_handl_type_id_col
LIMIT 1000;
EXIT WHEN cur_hhlds_for_update%NOTFOUND;
FORALL i IN l_household_id_col.FIRST .. l_household_id_col.LAST
UPDATE compas.household_special_handling
SET effective_date = TRUNC (SYSDATE),
last_modified_by = v_user,
last_modified_date = SYSDATE
WHERE household_id = l_household_id_col(i)
AND special_handling_type_id = l_spec_handl_type_id_col(i);
--l_special_handling_update_cnt := l_special_handling_update_cnt + SQL%ROWCOUNT; -- Not sure what this does.
END LOOP;
END;G.
Maybe you are looking for
-
Crystal Report Error in Windows Server 2012 - Load Report Failed
Badly needed help regarding the above topic. Thanks in advance for helping. We have a web application experiencing this error after deployment in WinServer 2012 IIS 8. Previously, the application was deployed in WinServer 2003 but we dont experience
-
Dynamic field selection by variable input in bex report
Hi Frineds, I have created variable on characteristic ( 0CURTYPE ) which mainly have two values 'A' and ' B' .Based on my variable input in Bex I have to dynamical select key figuers Example . 0CURTYPE KeyfigA KeyFigB A
-
I manually sleep my Mac Mini when I leave it for an hour or two. It's often unresponsive when I wake it up. The desktop looks normal, but clicking with the mouse (wired) produces an odd pop up menu, not the function I clicked on. In fact, I can get n
-
Contact Form Resetting after Submission Bug?
Currently, when a contact form is submitted, all fields are cleared out and it appears that it returns to the Non-Empty state. However clicking in a field and then back out of it will make it go to the Empty state, as it seems like it should after su
-
Oracle connecting with one system
Hi all, We have Oracle (10.2.0.1) on windows 2003. Oracle Server IP->192.168.4.19 My system IP->192.168.4.108 Now i want that only my system(192.168.4.108) is enable to connect to Oracle Server.Connection from another IP is denied. How can i implemen