DataGrid and Charts with dynamic XML
First of all, forgive me if this has already been answered.
The charting examples you see in the Flex documentation all
use the same familiar ArrayCollection, and binds it to a DataGrid,
Bar Chart, Area Chart, etc. However, all the grids and charts
already know the structure of the data because the mxml contains
field like yField="month" displayName="Month".
What I am trying to do is make everything dynamic. I am
converting an XML structure to an ArrayCollection and making it the
dataProvider, but all I end up with is the column headers. The
actual data doesn't populate the rows of the DataGrid.
Beyond that. I want to take that same ArrayCollection I
created from dynamic XML and use it as the dataProvider for any of
the charts included with Flex Charting. Basically, a way to
visualize the same data in any of the Flex charting components via
a drop down.
Has anybody got this to work?
Without actually seeing the file, I would say check your
content-type and make sure it is 'text/xml'.
You can see examples of setting the content type here:
http://labs.adobe.com/technologies/spry/samples/utils/query2xml.html
You can sometimes tell just by viewing the dynamic XML in the
browser. If it shows as a XML tree, all is well. If it is a big
blob of text, it's probably content-type...
Let us know...
Don
Similar Messages
-
Adobe Reader for Android to work with dynamic XML PDF forms?
Any possibility that Reader for Android will ever work with dynamic XML PDF forms created by Abobe Acrobat Pro?
GoodReader ($4.99), ezPDF Reader ($2.99) and PDF Expert ($9.99) are well rated and support many more features.
Here a link for your reference: http://indesignsecrets.com/for-interactive-pdf-not-all-readers-are-equal.php -
Build a web gallery with amazing flash slideshows with dynamic XML files
Build a web gallery with amazing flash slideshows with dynamic XML files
Screenshot:
Features
Features
Transitions, zooming and panning effect You can choose from Random, Wipe from Left, Fade to White, Cross Expansion and other 60-plus transition effects. Zooming and panning effect is optional for advanced flash templates.
XML-driven This flash slideshow are XML-driven. The XML document allows more personalized controls over the flash.
Auto-playback and repeat mode The flash slideshow will play automatically after preloading, and it can repeat playback.
Dynamic customization Besides XML control, the advanced templates provide many more custom options, so that you can create slideshow that fits into your existing web design: width , height, border color, background color, thumbnail size, etc. More about dynamic customization
Usage and demo visit: http://webdesigndevelopment.blog.com...swf-xml-files/Please excuse the bump...
Anyone with a LR flash gallery that starts with slideshow in play mode?
Can it even be set to do this?
The only code in the style.xml that looks like it might be realted is line 12 <playOptions playMode="pause"/>, changing that to "play" does nothing.
Thanks,
Donnie -
Trouble with dynamic XML and dataSets
I am generating dynamic XML files from a datasource. When I
try and load into a XMLDataSet I get an 'onLoadError' notification.
Now, if I load the same dynamic content as a static XML file it
works fine, so I know my XPath and XML structure is correct. Has
anyone else run into this issue? I can't find anything
online.Without actually seeing the file, I would say check your
content-type and make sure it is 'text/xml'.
You can see examples of setting the content type here:
http://labs.adobe.com/technologies/spry/samples/utils/query2xml.html
You can sometimes tell just by viewing the dynamic XML in the
browser. If it shows as a XML tree, all is well. If it is a big
blob of text, it's probably content-type...
Let us know...
Don -
How to create a data connection with dynamic XML file?
Thanks for all reply first!
I have formatted the submitted data into an XML file on the server side,this file can be import to PDF form correctly.
I try to send this XML file to the user to let him can review what he has submitted.
I guess that I should create a data connection to the XML file so that it can be reviewed by the user.
But the question is that the XML file is dynamic generated.
How can i do?
give me some clus or examples,please.
thanks,
Jasper.Hi Jasper,
To show user back the result, you can use PDF instead of XML. You can store the PDF template in server and you can merge XML data with PDF template by Livecycle Form Data Integration service.
We, as KGC, can generate huge number of Adobe Livecycle forms in small periods. Also we give consultancy on Adobe Livecycle ES products and Adobe Livecyle Designer. In case of any need, do not hesitate to contact us.
Asiye Günaydın
Project Consultant
KGC Consulting Co.
www.kgc.com.tr -
Flash chart with dynamic sql query does not display
Hi,
In my schema SIVOA I have a lot of tables declared like this :
CREATE TABLE "SIVOA"."EVV_xxxx"
( "CLEF_VAR" NUMBER(4,0),
"DATE1" DATE,
"VALEUR" NUMBER(16,8) Only the last part of the name changes "xxxx". For example E009, E019, etc....
I am making a chart page with report and want the user to select a name of a table and I will display using dynamic sql query, the table report and chart.
P184_ENAME is a select list returning the last part of the name of the table, fro example 'E009', 'E019', etc.
P8_CLEF_VAR is an item containing a value. This value is a key retrieved like this :SELECT CLEF_VAR
FROM SIVOA.SITE_ECHELLE
WHERE SITE = :P184_ENAMEI built a classic report using a sql dynamic function :DECLARE
x VARCHAR2 (4000);
BEGIN
x := 'SELECT NULL, DATE1, VALEUR FROM SIVOA.EVV_'
|| UPPER(:p184_ename)
|| ' WHERE CLEF_VAR = :p8_clef_var' ;
RETURN (x);
END;:p8_clef_var is an itme containing the value '4544'.
This works perfectly fine !
When I use this sql fucytion into a flash chart it does not work. I get this message "No data found".
I do not understand why a the report get a result and not the chart !
But if i hard-code the number of the CLEF_VAR instead of fetching it from :p8_clef_var I get a nice chart ! Go figure !DECLARE
x VARCHAR2 (4000);
BEGIN
x := 'SELECT NULL, DATE1, VALEUR FROM SIVOA.EVV_'
|| UPPER(:p184_ename)
|| ' WHERE CLEF_VAR = 4544 ' ;
RETURN (x);
I cannot stay with the key (CLEF_VAR) hard-coded unformtunately !
My question is how to get the chart displaying properly ??
Thank you for your kind answers.
ChristianAlex,
Using your request, with the classic report I get results (data), but I get the same message with the Flash chart : "No data found" ! I don't know how to investigate this. i tried many things but nothing works.
Christian
PS I tried this :
DECLARE
X VARCHAR2 (4000);
BEGIN
x := 'SELECT NULL, DATE1, ROUND(VALEUR,2) FROM SIVOA.EVV_'
|| UPPER (:p184_ename) ||
' WHERE CLEF_VAR = '
|| :p8_clef_var ||
' AND DATE1 BETWEEN TO_DATE ('''
||:P8_DATE_DEBUT||''', ''DD/MM/YYYY HH24:MI'') AND TO_DATE ('''
||:P8_DATE_FIN||''', ''DD/MM/YYYY HH24:MI'')'
RETURN (X);
END; But it does not work either. I could find that the SLQ syntax generated is good becaus I put it into an item which display the return done by the pls/sql.
What is sttange also with the classic report is that if I do click on next or previous to see another rows, I get the message "No data found". If I try to export the report I get an excel file with "No data fouid".
Does anybody already tried my "need" here ? i find strange thant I should not be the firs one trying to get a report an tables which name would be "dynamic".
Tahnk you.
Edited by: Christian from France on Feb 13, 2009 3:05 AM -
Hi,
I want to create a Power Pivot Chart and a Power View chart in Power BI where the x-axis should be the current system date time axis and it's functionality should be similar to that in Perfmon.exe tool (Start-->Run-->Perfmon)?Hi Manjunath,
Do you mean you want to programmatically create such a dynamic chart which has a X axis of time? If you just want to do this manually, please take a look at this document which is talking about how to create charts with Power BI:
Charts and other visualizations in Power View
We are trying to better understand customer views on social support experience, so your participation in this interview project would be greatly appreciated if you have time. Thanks for helping make community forums a great place.
Click
HERE to participate the survey. -
Graphs and Charts output in XML Publisher Report
Hi All,
I have incorporated the graphs and charts as well as some bitmap images in XML Report (RTF File), When i am taking a output in pdf. it is coming fine and working properly, where as while taking the same output in excel, graphs/charts/bitmap images are not getting displayed. Only you can view the data.
can you please suggest what's the issue on the same and how can be resolved.
Thanks & Regards
Ankur DawraNot sure you are on the right forum...
-
Limiting Tables and charts with Measures having RelativeValue
Hallo,
I just try to do some difficult stuff with the WebI Rich Client 4.1.
There are two measures for each month on a time line showing year and month. Thus, I have a dimension for year and month and two different measures for each year/month combination.
Now, e.g. I want to compare these two measures having same month and different years, say the current year and the year before. Please see the table below for a visible figure.
I used RelativeValue([measure prior year_1];([year/month]);-12) for [measure prior year] in order to compare one 1 year older measure with the other measure.
year/month
measure prior year
measure current year
2010/10
2010/11
2010/12
2011/01
2011/02
2011/03
2011/04
2011/05
2011/06
2011/07
2011/08
2011/09
2011/10
439
97
2011/11
7.294
2.712
2012/02
20.496
13.397
2012/05
21.859
12.636
2013/01
36.325
27.286
2014/08
26.894
17.425
There are no values for [measure current year] before 2011/10. But, there are values for [measure prior year_1] before 2011/10. [measure prior year] is actually from 2010/10, 2010/11 and so on, as defined with RelativeValue.
No problem here. Everything works fine. But, now, I want to start the table with the first row where [measure prior year] is not null while leaving measure current year unchanged. Just cut the table and start with 2011/10...
And here we get the problem. Hence, RelativeValue references to values before 2011/10 all these reference will disappear for [measure prior year].
The same is with charts. I couldn't find a way to reference to values that exist by the query but which are not displayed in a table or a chart!
What I need is a way to reference to values which are not present in a single table or chart but in the report. I already fiddled with the display options (null values, without dimension etc.) of tables. But, no way.
How could a accomplish this task?
Any idea of something like "hiding" unwanted rows/bars results in "loss of data".
Thanks for any help
MatthiasWell... if you think and try long enough, you may find the solution .
The core problem is to reference to queried values not shown in the table/chart. And there IS a solution.
Just use...
NoFilter(RelativeValue([measure prior year_1];([year/month]);-12))
... instead of
RelativeValue([measure prior year_1];([year/month]);-12)
NoFilter enables RelativeValue to reference to values not present in a table or chart, but available in the report .
From there on, you can define e.g. the starting point of the category axis of a chart by defining a local filter without losing values to be referenced . -
Help with CISCO-887VA adsl over pots and PPPoE with dynamic IP
Hi
I've got problem trying to connect the CISCO-887VDSL/ADSL OVER POTS ROUTER to internet. Only got the LAN part working.
I'm trying to setup PPPoE with dynamic IP
Followed CISCO's documentations but the commands used were not recognized by the router. Any simple working config for me to follow will be enough.
I'll appreciate any help. Thanks a lot!
here's my config.
! Last configuration change at 08:31:51 UTC Sat Feb 11 2012
version 15.1
no service pad
service timestamps debug datetime msec
service timestamps log datetime msec
no service password-encryption
hostname router
boot-start-marker
boot-end-marker
no aaa new-model
memory-size iomem 10
crypto pki token default removal timeout 0
ip source-route
ip dhcp excluded-address 10.0.0.1 10.0.0.149
ip dhcp excluded-address 10.0.0.199 10.0.0.254
ip dhcp pool sdm-pool
import all
network 10.0.0.0 255.255.255.0
default-router 10.0.0.1
dns-server x.x.x.x x.x.x.x.x
lease 0 2
ip cef
no ipv6 cef
license udi pid CISCO887VA-K9 sn FGLxxxxxxx
controller VDSL 0
ip ftp username cisco
ip ftp password cisco
interface Ethernet0
pppoe enable group global
pppoe-client dial-pool-number 1
no ip address
shutdown
interface ATM0
no ip address
no atm ilmi-keepalive
pvc 0/35
pppoe-client dial-pool-number 1
interface FastEthernet0
no ip address
interface FastEthernet1
no ip address
interface FastEthernet2
no ip address
interface FastEthernet3
no ip address
interface Vlan1
ip address 10.0.0.1 255.255.255.0
ip nat inside
ip directed-broadcast
ip virtual-reassembly in
ip tcp adjust-mss 1452
interface Dialer1
mtu 1492
ip address negotiated
ip nat outside
ip virtual-reassembly in
encapsulation ppp
dialer pool 1
dialer-group 1
ppp authentication chap pap callin
ppp chap hostname xxxx
ppp chap password 0 xxxx
ppp pap sent-username xxxx password 0 xxxx
ip forward-protocol nd
no ip http server
no ip http secure-server
ip nat inside source list 1 interface Dialer1 overload
ip route 0.0.0.0 0.0.0.0 Dialer1
ip access-list standard 1
permit 10.0.0.0 0.0.0.255
no cdp run
line con 0
line aux 0
line vty 0 4
login
transport input all
endTry to check with your ISP the modem string to use for VDSL
and some ISP support direct dhcp on Ethernet0 without PPPoE.
An equivalent config is working for me in Switzerland with Swisscom.
N.B. "modem" under VDSL controller is enable using service internal !
service internal
controller VDSL 0
operating mode vdsl2
modem co5
ip source-route
ip cef
ip dhcp excluded-address 10.0.0.1 10.0.0.149
ip dhcp excluded-address 10.0.0.199 10.0.0.254
ip dhcp pool sdm-pool
import all
network 10.0.0.0 255.255.255.0
default-router 10.0.0.1
dns-server 8.8.8.8
lease 0 2
interface Ethernet0
ip address dhcp
ip nat outside
interface Vlan1
ip address 10.0.0.1 255.255.255.0
ip nat inside
ip tcp adjust-mss 1452
ip nat inside source list 23 interface Ethernet0 overload
access-list 23 permit 10.0.0.0 0.0.0.255
end -
Error with Dynamic XML template in interactive form callable objects :GP
Hi,
We are trying to implement Offline adobe forms using guided procedures (Impersonalized forms).
We have no problem while creating the callable object using the normal xdp template. But whenever we try to use Acrobat 7/8 dynamic xml template, the following error occurs and the template is not picked.
"Could not retrieve template fields: Wrong document format or adapter mismatch from adapter"
Cant we use dynamic xml templates for adobe forms in GP? If we can, how to resolve this? Please let me know.
Version:
Netweaver SAP 2004s Sp15
Adove Live Cycle desginer 7.0
Edited by: Subramanya Srinivas Mullapudi on Oct 25, 2008 1:31 AMHi Srivinas,
take a look on that [docu dynamic forms|http://help.sap.com/saphelp_nw70/helpdata/en/44/bca11fc60b7006e10000000a155369/content.htm] and let me know if this is solving your problem.
In addition also consider [integrating offline and form-based activities|http://help.sap.com/saphelp_nw70/helpdata/en/44/d44bea51103ee1e10000000a114a6b/content.htm] and the mentioned sublinks.
Best regards
Berndt -
Synchronization between datagrid and chart Item
Hi
In my application, I have a datagrid and corresponding bar
chart. there is a toggle button through which I can switch between
chart and data grid.
Now I want to synchronize both.
for example If I select any 3 rows in data grid then it
should selects 3 bars on the chart also.
can any body help me in that?
Thanks
smonika15Hi,
U need to have a combo box renderer something like:
In the object that u are populating the data provider of the
data grid, add 2 fields:
listOfFields & selectedField.
<mx:HBox horizontalScrollPolicy="off"
verticalScrollPolicy="off"
xmlns:mx="
http://www.adobe.com/2006/mxml">
<mx:Script>
<![CDATA[
public var itemSelected: Object;
]]>
</mx:Script>
<mx:ComboBox id="combo"
dataProvider="{data.listOfFields}"
selectedItem="{data.selectedField}"
change="itemSelected=combo.selectedItem;"
updateComplete="itemSelected=combo.selectedItem;">
</mx:ComboBox>
</mx:HBox>
Now, loop through the list of objects that u get from
back-end and keep setting the 2 new properties (listOfFields &
selectedField). For setting the value of selectedField, u need to
loop through listOfFields to match the fieldId.
Hope that helps,
Cheree -
Plotting multiple graphs on one waveform chart with dynamic data types
I'm trying to put multiple graphs on one waveform chart and having data agreement errors. I'm wondering if it has anything to do with the fact that dynamic data is being used (I've had no problems with other datatypes in the past). Does anyone know how to correct this problem? I've attached the following .VI. There will be plenty of .VIs on the bottom that won't load, but they are not consequential for this problem.
Thanks!
Brian
Solved!
Go to Solution.
Attachments:
Stiffness Control V1.vi 119 KByou could use stacked plots by right clicking on the chart and clicking on the stacked plots and than on the front panek you can put a bundle function on the FP and hook your signals up
Harold Timmis
[email protected]
Orlando,Fl
*Kudos always welcome
Attachments:
multiplotwaveform.JPG 138 KB -
Better way to take Comet requests and respond with dynamic HTML?
Hello folks,
When my servlet writes back inline plaintext/XML in response to Comet requests, it only takes 10-20ms.
When I have it use RequestDispatcher to return a processed JSP page, it never takes less than a full second.
(I am on localhost with Tomcat 6.20 using the connector org.apache.coyote.http11.Http11NioProtocol)
Now I am a servlets newb, but I thought JSP's are essentially servlets. So there should be a way to run my Comet servlet and then have it call my JSP in serial and only double the processing time.
Is there a faster way than RequestDispatcher to process a JSP page and send it to the client from my servlet?
Thanks.
moeshroomIf you understand HTML and CSS well enough to just write it in Notepad, you are light years beyond most beginners here. Understanding the code is usually the steepest curve of all. Think of DW as a really advanced Notepad with color-coded editing and a visual preview of the code. With that I would recommend doing your coding in Dreamweaver and use Fireworks/Photoshop to optimize your graphics for the web and export those pieces, but not code (HTML or CSS).
If you feel the curve is too steep at first and your job needs to be finished, stick with what you know. -
BULK COLLECT and FORALL with dynamic INSERT.
Hello,
I want to apply BULK COLLECT and FORALL feature for a insert statement in my procedure for performance improvements as it has to insert a huge amount of data.
But the problem is that the insert statement gets generated dynamically and even the table name is found at the run-time ... so i am not able to apply the performance tuning concepts.
See below the code
PROCEDURE STP_MES_INSERT_GLOBAL_TO_MAIN
(P_IN_SRC_TABLE_NAME VARCHAR2 ,
P_IN_TRG_TABLE_NAME VARCHAR2 ,
P_IN_ED_TRIG_ALARM_ID NUMBER ,
P_IN_ED_CATG_ID NUMBER ,
P_IN_IS_PIECEID_ALARM IN CHAR,
P_IN_IS_LAST_RECORD IN CHAR
IS
V_START_DATA_ID NUMBER;
V_STOP_DATA_ID NUMBER;
V_FROM_DATA_ID NUMBER;
V_TO_DATA_ID NUMBER;
V_MAX_REC_IN_LOOP NUMBER := 30000;
V_QRY1 VARCHAR2(32767);
BEGIN
EXECUTE IMMEDIATE 'SELECT MIN(ED_DATA_ID), MAX(ED_DATA_ID) FROM '|| P_IN_SRC_TABLE_NAME INTO V_START_DATA_ID , V_STOP_DATA_ID;
--DBMS_OUTPUT.PUT_LINE('ORIGINAL START ID := '||V_START_DATA_ID ||' ORIGINAL STOP ID := ' || V_STOP_DATA_ID);
V_FROM_DATA_ID := V_START_DATA_ID ;
IF (V_STOP_DATA_ID - V_START_DATA_ID ) > V_MAX_REC_IN_LOOP THEN
V_TO_DATA_ID := V_START_DATA_ID + V_MAX_REC_IN_LOOP;
ELSE
V_TO_DATA_ID := V_STOP_DATA_ID;
END IF;
LOOP
BEGIN
LOOP
V_QRY1 := ' INSERT INTO '||P_IN_TRG_TABLE_NAME||
' SELECT * FROM '||P_IN_SRC_TABLE_NAME ||
' WHERE ED_DATA_ID BETWEEN ' || V_FROM_DATA_ID ||' AND ' || V_TO_DATA_ID;
EXECUTE IMMEDIATE V_QRY1;
commit;
V_FROM_DATA_ID := V_TO_DATA_ID + 1;
IF ( V_STOP_DATA_ID - V_TO_DATA_ID > V_MAX_REC_IN_LOOP ) THEN
V_TO_DATA_ID := V_TO_DATA_ID + V_MAX_REC_IN_LOOP;
ELSE
V_TO_DATA_ID := V_TO_DATA_ID + (V_STOP_DATA_ID - V_TO_DATA_ID);
END IF;
EXCEPTION
WHEN OTHERS THEN.............
....................so on Now you can observer here that P_IN_SRC_TABLE_NAME is the source table name which we get as a parameter at run-time. I have used 2 table in the insert statement P_IN_TRG_TABLE_NAME (in which i have to insert data) and P_IN_SRC_TABLE_NAME(from where i have to insert data)
V_QRY1 := ' INSERT INTO '||P_IN_TRG_TABLE_NAME||
' SELECT * FROM '||P_IN_SRC_TABLE_NAME ||
' WHERE ED_DATA_ID BETWEEN ' || V_FROM_DATA_ID ||' AND ' || V_TO_DATA_ID;
EXECUTE IMMEDIATE V_QRY1;now when i appy the bulk collect and forall feature i am facing the out of scope problem....see the code below ...
BEGIN
EXECUTE IMMEDIATE 'SELECT MIN(ED_DATA_ID), MAX(ED_DATA_ID) FROM '|| P_IN_SRC_TABLE_NAME INTO V_START_DATA_ID , V_STOP_DATA_ID;
--DBMS_OUTPUT.PUT_LINE('ORIGINAL START ID := '||V_START_DATA_ID ||' ORIGINAL STOP ID := ' || V_STOP_DATA_ID);
V_FROM_DATA_ID := V_START_DATA_ID ;
IF (V_STOP_DATA_ID - V_START_DATA_ID ) > V_MAX_REC_IN_LOOP THEN
V_TO_DATA_ID := V_START_DATA_ID + V_MAX_REC_IN_LOOP;
ELSE
V_TO_DATA_ID := V_STOP_DATA_ID;
END IF;
LOOP
DECLARE
TYPE TRG_TABLE_TYPE IS TABLE OF P_IN_SRC_TABLE_NAME%ROWTYPE;
V_TRG_TABLE_TYPE TRG_TABLE_TYPE;
CURSOR TRG_TAB_CUR IS
SELECT * FROM P_IN_SRC_TABLE_NAME
WHERE ED_DATA_ID BETWEEN V_FROM_DATA_ID AND V_TO_DATA_ID;
V_QRY1 varchar2(32767);
BEGIN
OPEN TRG_TAB_CUR;
LOOP
FETCH TRG_TAB_CUR BULK COLLECT INTO V_TRG_TABLE_TYPE LIMIT 30000;
FORALL I IN 1..V_TRG_TABLE_TYPE.COUNT
V_QRY1 := ' INSERT INTO '||P_IN_TRG_TABLE_NAME||' VALUES V_TRG_TABLE_TYPE(I);'
EXECUTE IMMEDIATE V_QRY1;
EXIT WHEN TRG_TAB_CUR%NOTFOUND;
END LOOP;
CLOSE TRG_TAB_CUR;
V_FROM_DATA_ID := V_TO_DATA_ID + 1;
IF ( V_STOP_DATA_ID - V_TO_DATA_ID > V_MAX_REC_IN_LOOP ) THEN
V_TO_DATA_ID := V_TO_DATA_ID + V_MAX_REC_IN_LOOP;
ELSE
V_TO_DATA_ID := V_TO_DATA_ID + (V_STOP_DATA_ID - V_TO_DATA_ID);
END IF;
EXCEPTION
WHEN OTHERS THEN.........so on
But the above code is not helping me , what i am doing wrong ??? how can i tune this dynamically generated statement to use bulk collect for better performace ......
Thanks in Advance !!!!Hello,
a table name cannot be bind as a parameter in SQL, this wont't compile:
EXECUTE IMMEDIATE ' INSERT INTO :1 VALUES ......
USING P_IN_TRG_TABLE_NAME ...but this should work:
EXECUTE IMMEDIATE ' INSERT INTO ' || P_IN_TRG_TABLE_NAME || ' VALUES ......You cannot declare a type that is based on a table which name is in a variable.
PL/SQL is stronly typed language, a type must be known at compile time, a code like this is not allowed:
PROCEDURE xx( src_table_name varchar2 )
DECLARE
TYPE tab IS TABLE OF src_table_name%ROWTYPE;
...This can be done by creating one big dynamic SQL - see example below (tested on Oracle 10 XE - this is a slightly simplified version of your procedure):
CREATE OR REPLACE
PROCEDURE stp1(
p_in_src_table_name VARCHAR2 ,
p_in_trg_table_name VARCHAR2 ,
v_from_data_id NUMBER := 100,
v_to_data_id NUMBER := 100000
IS
BEGIN
EXECUTE IMMEDIATE q'{
DECLARE
TYPE trg_table_type IS TABLE OF }' || p_in_src_table_name || q'{%ROWTYPE;
V_TRG_TABLE_TYPE TRG_TABLE_TYPE;
CURSOR TRG_TAB_CUR IS
SELECT * FROM }' || p_in_src_table_name ||
q'{ WHERE ED_DATA_ID BETWEEN :V_FROM_DATA_ID AND :V_TO_DATA_ID;
BEGIN
OPEN TRG_TAB_CUR;
LOOP
FETCH TRG_TAB_CUR BULK COLLECT INTO V_TRG_TABLE_TYPE LIMIT 30000;
FORALL I IN 1 .. V_TRG_TABLE_TYPE.COUNT
INSERT INTO }' || p_in_trg_table_name || q'{ VALUES V_TRG_TABLE_TYPE( I );
EXIT WHEN TRG_TAB_CUR%NOTFOUND;
END LOOP;
CLOSE TRG_TAB_CUR;
END; }'
USING v_from_data_id, v_to_data_id;
COMMIT;
END;But this probably won't give any performace improvements. Bulk collect and forall can give performance improvements when there is a DML operation inside a loop,
and this one single DML operates on only one record or relatively small number of records, and this DML is repeated many many times in the loop.
I guess that your code is opposite to this - it contains insert statement that operates on many records (one single insert ~ 30000 records),
and you are trying to replace it with bulk collect/forall - INSERT INTO ... SELECT FROM will almost alwayst be faster than bulk collect/forall.
Look at simple test - below is a procedure that uses INSERT ... SELECT :
CREATE OR REPLACE
PROCEDURE stp(
p_in_src_table_name VARCHAR2 ,
p_in_trg_table_name VARCHAR2 ,
v_from_data_id NUMBER := 100,
v_to_data_id NUMBER := 100000
IS
V_QRY1 VARCHAR2(32767);
BEGIN
V_QRY1 := ' INSERT INTO '|| P_IN_TRG_TABLE_NAME ||
' SELECT * FROM '|| P_IN_SRC_TABLE_NAME ||
' WHERE ed_data_id BETWEEN :f AND :t ';
EXECUTE IMMEDIATE V_QRY1
USING V_FROM_DATA_ID, V_TO_DATA_ID;
COMMIT;
END;
/and we can compare both procedures:
SQL> CREATE TABLE test333
2 AS SELECT level ed_data_id ,
3 'XXX ' || LEVEL x,
4 'YYY ' || 2 * LEVEL y
5 FROM dual
6 CONNECT BY LEVEL <= 1000000;
Table created.
SQL> CREATE TABLE test333_dst AS
2 SELECT * FROM test333 WHERE 1 = 0;
Table created.
SQL> set timing on
SQL> ed
Wrote file afiedt.buf
1 BEGIN
2 FOR i IN 1 .. 100 LOOP
3 stp1( 'test333', 'test333_dst', 1000, 31000 );
4 END LOOP;
5* END;
SQL> /
PL/SQL procedure successfully completed.
Elapsed: 00:00:22.12
SQL> ed
Wrote file afiedt.buf
1 BEGIN
2 FOR i IN 1 .. 100 LOOP
3 stp( 'test333', 'test333_dst', 1000, 31000 );
4 END LOOP;
5* END;
SQL> /
PL/SQL procedure successfully completed.
Elapsed: 00:00:14.86without bulk collect ~ 15 sec.
bulk collect version ~ 22 sec. .... 7 sec longer / 15 sec. = about 45% performance decrease.
Maybe you are looking for
-
Chipset Model: NVIDIA GeForce 9400 Type: Display Bus: PCI VRAM (Total): 256 MB Vendor: NVIDIA (0x10de) Device ID: 0x0867 Revision ID: 0x00b1 ROM Revision: 3379 Displays: iMac: Resolution: 1920 x 1200 Depth: 32-Bit Color Core Ima
-
Hi, I want to know how to put some value on a table header dynamically. Regards Hawker
-
Installing Creative Cloud- Email Verification
Hi all I am trying to download photoshop through the creative cloud, however it is asking me for a verification email.. I never had one through? Could someone advise me as to what to do next? Thanks
-
I've been sending texts via iMessage from my new iPad. It is set up to send from my mobile phone number as the sender. When I send a message (even to myself) it shows my wife as the sender. When sent to myself it shows my picture as the recipient. I'
-
TS3274 how do you delete photos from ipad
I am unable to delete photos from my IPad. The option doesn't come up on my toolbar??