Help with slooooow function...
Hi
I have written a function which converts a python list structure, represented as a string (as produced by str(List)) to a java Vector. The list may consist of an arbitrary depth of other lists or integers. E.g the string may look like this:
"[[23, 34, 3], 3, 4, [23, 2, 5]]"
which would produce a Vector of Vectors and Integers.
The function:
/* Converts a python list (of lists and/or ints), represented by
* a string, to a java vector (of vectors and/or Integers) */
public static Vector pythonListToJavaVector(String pythonList)
int i, m, depth, start;
char c;
Vector javaVector = new Vector();
StringBuffer number = new StringBuffer();
char listStart = '[';
char listEnd = ']';
char sep = ',';
/* Check for the empty list */
if (pythonList.equals("[]"))
return new Vector();
/* depth is how many lists are wrapped around us */
depth = 0;
start = 0;
/* Next: Fill javaVector. We don't care about the start and end brackets
* because they are implicit when we get here */
for (i = 1, m = pythonList.length() - 1; i < m; i++)
c = pythonList.charAt(i);
if (c == listStart)
if (depth == 0)
/* Store starting index of new list */
start = i;
depth++;
else if (c == listEnd)
depth--;
if (depth == 0)
/* End of new list found */
javaVector.addElement(pythonListToJavaVector(pythonList.substring(start, i + 1)));
else if (depth == 0 && Character.isDigit(c))
/* We only care about digits on the right depth */
/* First digit of a number was found */
number.append(c);
/* Look for rest of the number */
while (i + 1 < m && Character.isDigit(pythonList.charAt(i + 1)))
i++;
c = pythonList.charAt(i);
number.append(c);
javaVector.addElement(new Integer(Integer.parseInt(number.toString())));
/* Clear StringBuffer */
number.delete(0, number.length());
return javaVector;
}It works but is painfully slow... I have an equivalent function in Python (converting a python list represented as a string to an actual list), and it is approximately 25 times faster!.
So, if you can spot any bootlenecks in my function or alternate ways of doing the same thing, don't hesitate to post your thoughts.
regards tores
The following version eliminates a lot of overhead, but realistically, the technique used seems quite fast as it is. My measurements (on a 1.2 GHz PIII notebook running JSE 5.0 shows that the avarage execution time to convert a fairly complex string to a list takes only around 12 microseconds - not much room for improvement. Your original version took about 4 times as long pimarily due to cost of StringBuffer and conversion of string to int which mine avoids. The use of ArrayList instead of Vector had little effect.
NOTE - microbenchmarks are a little tricky and therefore your mileage may vary.
import java.util.ArrayList;
public class Test {
* @param args
public static void main(String[] args) {
long start = System.nanoTime();
for (int i = 0; i < 1000; ++i) {
pythonListToJavaVector("[1,2,3,4,[1000,2000,3000,4000,5000],6,[5,6,7,8,9],90,91,92,93,94,95,96,97,98,99]");
System.out.println("" + ((System.nanoTime() - start) / 1000000.0)
+ " microseconds");
start = System.nanoTime();
for (int i = 0; i < 1000; ++i) {
pythonListToJavaVector("[1,2,3,4,[1000,2000,3000,4000,5000],6,[5,6,7,8,9],90,91,92,93,94,95,96,97,98,99]");
System.out.println("" + ((System.nanoTime() - start) / 1000000.0)
+ " microseconds");
start = System.nanoTime();
for (int i = 0; i < 1000; ++i) {
pythonListToJavaVector("[1,2,3,4,[1000,2000,3000,4000,5000],6,[5,6,7,8,9],90,91,92,93,94,95,96,97,98,99]");
System.out.println("" + ((System.nanoTime() - start) / 1000000.0)
+ " microseconds");
start = System.nanoTime();
for (int i = 0; i < 1000; ++i) {
pythonListToJavaVector("[1,2,3,4,[1000,2000,[1,2,3],3000,4000,5000],6,[5,6,7,8,9],90,91,92,93,94,95,96,97,98,99]");
System.out.println("" + ((System.nanoTime() - start) / 1000000.0)
+ " microseconds");
start = System.nanoTime();
for (int i = 0; i < 1000; ++i) {
pythonListToJavaVector("[1,2,3,4,5,6,7,8,9,90,91,92,93,94,95,96,97,98,99]");
System.out.println("" + ((System.nanoTime() - start) / 1000000.0)
+ " microseconds");
private static final char listStart = '[';
private static final char listEnd = ']';
public static ArrayList pythonListToJavaVector(String pythonList) {
ArrayList javaList = new ArrayList(100);
/* Check for the empty list */
if (!pythonList.equals("[]")) {
/* depth is how many lists are wrapped around us */
int depth = 0;
int start = 0;
* Next: Fill javaVector. We don't care about the start and end
* brackets because they are implicit when we get here
for (int i = 1, m = pythonList.length() - 1; i < m; i++) {
char c = pythonList.charAt(i);
if (c == listStart) {
if (depth == 0) {
/* Store starting index of new list */
start = i;
depth++;
} else if (c == listEnd) {
depth--;
if (depth == 0) {
/* End of new list found */
javaList.add(pythonListToJavaVector(pythonList
.substring(start, i + 1)));
} else if (depth == 0 && Character.isDigit(c))
/* We only care about digits on the right depth */
/* First digit of a number was found */
int number = buildInteger(0, c);
/* Look for rest of the number */
while (i + 1 < m
&& Character.isDigit(pythonList.charAt(i + 1))) {
i++;
c = pythonList.charAt(i);
number = buildInteger(number, c);
javaList.add(new Integer(number));
/* Clear StringBuffer */
number = 0;
return javaList;
private static int buildInteger(int current, char nextChar) {
return (current * 10) + (nextChar - '0');
}Chuck
Similar Messages
-
Hi...I was wondering if I could get help with this function. How do i write a function to return hours between a begin date and an end date for an employee. Thanks so much
EdStevens wrote:
AlexeyDev wrote:
sb92075 wrote:
select (date2-date1)*24 from dual;not as above but as below
select (date2-date1)/24 from dual;date2-date1 is amount of days. Divide it by 24 and what? if you multiply it on 24 you will have a chance to know how many hours between these two dates. :-)Don't forget that a DATE type also includes a time component.I suppose it doesn't matter if you did a difference between two dates. The result is always number of days. -
Hi all,
I need some help with ASO mdx function.
Avg({Leaves([Employees].Currentmember)}, [Calculated_Field]). This will give me the average for Calculated_Field for all levels of Employees. But i want to add more dimensions like Region and year.
Please advice how can I achieve this.
Thanks
Andyyou have to use cross join in order to add more dimension members to the formula.This will give you some idea
Re: Writing formula in Outline??????
Regards,
RSG -
I need help with Analytic Function
Hi,
I have this little problem that I need help with.
My datafile has thousands of records that look like...
Client_Id Region Countries
[1] [1] [USA, Canada]
[1] [2] [Australia, France, Germany]
[1] [3] [China, India, Korea]
[1] [4] [Brazil, Mexico]
[8] [1] [USA, Canada]
[9] [1] [USA, Canada]
[9] [4] [Argentina, Brazil]
[13] [1] [USA, Canada]
[15] [1] [USA]
[15] [4] [Argentina, Brazil]
etc
My task is is to create a report with 2 columns - Client_Id and Countries, to look something like...
Client_Id Countries
[1] [USA, Canada, Australia, France, Germany, China, India, Korea, Brazil, Mexico]
[8] [USA, Canada]
[9] [USA, Canada, Argentina, Brazil]
[13] [USA, Canada]
[15] [USA, Argentina, Brazil]
etc.
How can I achieve this using Analytic Function(s)?
Thanks.
BDFHi,
That's called String Aggregation , and the following site shows many ways to do it:
http://www.oracle-base.com/articles/10g/StringAggregationTechniques.php
Which one should you use? That depends on which version of Oracle you're using, and your exact requirements.
For example, is order importatn? You said the results shoudl include:
CLIENT_ID COUNTRIES
1 USA, Canada, Australia, France, Germany, China, India, Korea, Brazil, Mexicobut would you be equally happy with
CLIENT_ID COUNTRIES
1 Australia, France, Germany, China, India, Korea, Brazil, Mexico, USA, Canadaor
CLIENT_ID COUNTRIES
1 Australia, France, Germany, USA, Canada, Brazil, Mexico, China, India, Korea?
Mwalimu wrote:
... How can I achieve this using Analytic Function(s)?The best solution may not involve analytic functions at all. Is that okay?
If you'd like help, post your best attempt, a little sample data (CREATE TABLE and INSERT statements), the results you want from that data, and an explanation of how you get those results from that data.
Always say which version of Oracle you're using.
Edited by: Frank Kulash on Aug 29, 2011 3:05 PM -
Help with Sort function in Terminal
Hello all... this is my first post on here as I'm having some trouble with some Termianl commands. I'm trying to learn Terminal at the moment as it is but I would appreciate some help with this one....
I'm trying to sort a rather large txt file into alphabetical order and also delete any duplicates. I've been using the following command in Terminal:
sort -u words.txt > words1.txt
but after a while I get the following error
sort: string comparison failed: Illegal byte sequence
sort: Set LC_ALL='C' to work around the problem.
sort: The strings compared were `ariadnetr\345dens\r' and `ariadnetr\345ds\r'.
What should my initial command be? What is Set LC_ALL='C'?
Hope you guys can help?Various languages distinct sorting - collation - sequences.
The characters can and variously do sort differently, depending on what language is involved.
Languages here can include the written languages of humans, and a few settings associated with programming languages. This is all part of what is known as internationalization and localization, and there are are various documents around on that topic.
The LC_ALL environment variable sets all of the locale-related settings en-mass, including the collation sequence that is established via LC_COLLATE et al, and the sort tool is suggesting selecting the C language collation.
Here, the tool is suggesting the following syntax:
LC_ALL=C sort -u words.txt > words1.txt
This can also be done by exporting the LC_ALL, but it's probably better to just do this locally before invoking the tool.
Also look at the lines of text in question within the files, and confirm the character encoding of the file.
Files can have different character encodings, and there's no reliable means to guess the encoding. For some related information, see the file command:
file words.txt
...and start reading some of the materials on internationalization and localization that are posted around the 'net. Here's Apple's top-level overview.
In this case, it looks like there's an "odd" character and probably an å character on that line and apparently the Svenska ariadnetrådens.
Switching collation can help here, or - if the character is not necessary - removing it via tr or replacing it via sed can be equally effective solutions.
Given it appears to be Svenska, it might work better to switch to Svenska collation thanto the suggested C collation.
I think that's going to be sv_SE, which would make the command:
LC_ALL=sv_SE sort -u words.txt > words1.txt
This is all generic bash shell scripting stuff, and not specific to OS X. If you haven't already seen them, the folks over at tldp have various guides including a bash guide for beginners, and an advanced bash scripting guide - both can be worth skimming. They're not exactly the same as bash on OS X and some specific commands and switches can differ, and as bash versions can differ, but bash is quite similar across all the platforms. -
Help with bash function(set background=dark/light in vimrc)
I couldn't find any gvimrc files so I guess it uses the regular one. And since I work pretty much in X too I thought it would be nice with a function that sets background=light if I'm in X an background=dark if not. Is that possible?
/Richardvimrc configuration is not the same as bash.
You probably want something like this in your ~/.vimrc:
if has('gui_running')
set background=light
else
set background = dark
endif -
Hi again forum:
I have a program and i need to pass basic functionality to a set of funtion module.
I have a description of a internal table in the program, that i need to use in the function-module
Example:
PROGRAM
" In the top of the program i declared.
"This the actual version
TYPES: BEGIN OF t1
END OF t1.
DATA: it_some TYPE STANDARD TABLE of t1 with header line.
SELECT *
FROM
INTO TABLE it_some.
FUNCTION MODULE
Now in the new version i need to declare an output paramter of type t1 in the exports parameters of the function ZMY_FUNCTION, and t1 is an internal_table, what can i do forum ?..
The thing is that how can i declare an export parameter that is not know?
please help
Thanks
Joshuahi,
we can pass internal table to FM by using CHANGING or TABLE options.
regards,
AshokReddy. -
Hi all,
I am suppose to write a java function for the following source and target structure:
<u>Source Structure</u>
Root A (0..unbounded)
|_ A
Root B (0..unbounded)
|_ B
Root C (0..unbounded)
|_ C
<u>Target Structure</u>
Root_target (0..unbounded)
|_ T
Based upon every occurrence of A, B and C, i have to first compare their values and for every unique value i have to create a separate instance of 'T'
i.e. if all the three A, B and C are different the output should be:
Root_target (0..unbounded)
|_ T (for A)
Root_target (0..unbounded)
|_ T (for B)
Root_target (0..unbounded)
|_ T (for C)
I am writing a java function in the graphical mapping for it, but i am stuck with the code to create target segments dynamically.
Any help in this regards is appreciated.
Regards,
VarunHi Varun,
I understood unique values form A,B,C need to map to T.
In this case change the context of all these A,B,C to their respective parent node.
write a user define function to accept these 3 queues , write a java logic to fiund uniqueness among all the records, add the resulkt to Resultset , which is output map to T.
Thanks,
venu. -
Need help with effect / function stop!
Hi all!
I tried to build some kind of custom pop-up-menu with fade
in/out effect, however the menu sometimes (< very often, but not
always) disappears while the mouse is still over it.
So i defined a function to stop/abort the effects, but this
doesn't work right.
Could anybody please tell me, how to stop all functions,
while the mouse is over a link?
/// This is the container to appear / disappear:
<div id="navislide" style="height:292px;
overflow:hidden;">
<a href="mylink.html" onMouseOver="killall();"
onMouseOut="hideit();">mylink</a>
</div>
/// This is the link to show the container:
<a href="#"
onMouseOver="slidefadein.start();">mylink</a>
<script type="text/javascript">
function displayblock() {
var thediv = document.getElementById('navislide');
thediv.style.display= "block";
slidetimer = setTimeout('slidefadeout.start();', 2000);
hideit = function() {
slidetimer = setTimeout('slidefadeout.start();', 2000);
function displaynone() {
var thediv = document.getElementById('navislide');
thediv.style.display= "none";
killall = function() {
clearTimeout(slidetimer);
slidefadeout.stop();
slidefadein.stop();
displayblock();
slidefadeup.start();
var slidefadein = new Spry.Effect.Fade("navislide", {from:0,
to:100, toggle:false, setup:displayblock, finish:hideit});
var slidefadeout = new Spry.Effect.Fade("navislide",
{from:100, to:0, toggle:false, finish:displaynone});
var slidefadeup = new Spry.Effect.Fade("navislide",
{from:100, to:100, toggle:false});
</script>
Probably, its all about the "killall"-function, because when
the mouse moves over the link, the function to abort all other
effects, does not take effect.
Thank you so much vor any kind of help or hint!!
Cheers,
idefixI would be most interested in a reply to this for I asked
weeks ago how to use an onClick stop() function for the links in my
page. I was given the stop function by VFusion (it is to stop
panels from rotating), but I could never figure out how to actually
get the function to stop the panels and could not get it no matter
what I tried, eventually had to take the panel rotation out. -
Hallow experts,
I'm doing an interface from sap into anther application and in this interface (log interface) I use two function below in program and I have to send to customer in text file in which field of infotype change was made
This to function helping me but I miss the action like insert was made or update or delete
Did dome one can help me with that?
HREIC_GET_LOGGED_INFTY_CHANGES
HR_INFOTYPE_LOG_GET_DETAIL
Best Regardshi Naveen Bathini
thankes for your answer
i thihk u dont understand me ,
HR_INFOTYPE_LOG_GET_DETAIL bring table fields with all the field that change
but i dont now if user create new infotype for employee or just take one field and change it like from infotype 0006 just change street or postal code
i wont to now if it is an insert (create new infotype ) or update or delete fields from infotype.
Best regards -
I successfully use the following analytical function to sum all net_movement of a position (key for a position: bp_id, prtfl_num, instrmnt_id, cost_prc_crncy) from first occurrence until current row:
SELECT SUM (net_movement) OVER (PARTITION BY bp_id, prtfl_num, instrmnt_id, cost_prc_crncy ORDER BY TRUNC (val_dt) RANGE BETWEEN UNBOUNDED PRECEDING AND 0 FOLLOWING) holding,
what i need is another column to sum net_movement of a position but only for the current date, but all my approaches fail..
- add the date (val_dt) to the 'partition by' clause and therefore sum only values with same position and date
SELECT SUM (net_movement) OVER (PARTITION BY val_dt, bp_id, prtfl_num, instrmnt_id, cost_prc_crncy ORDER BY TRUNC (val_dt) RANGE BETWEEN UNBOUNDED PRECEDING AND 0 FOLLOWING) today_net_movement
- take the holding for the last date and subtract it from the current holding afterwards
SELECT SUM (net_movement) OVER (PARTITION BY bp_id, prtfl_num, instrmnt_id, cost_prc_crncy ORDER BY TRUNC (val_dt) RANGE BETWEEN UNBOUNDED PRECEDING AND -1 FOLLOWING) last_holding,
- using lag on the analytical function which calculates holding fails too
I also want to avoid creating a table which stores the last holding..
Does anyone sees where I make a mistake or knows an alternative to get this value?
It would help me much!
Thanks in advance!Thank you,
but I already tried that but it returns strange values which are not the correct ones for sure.
It is always the same value for each row, if its not 0, and a very high one (500500 for example), even if the sum of all net_movement of that date is 0 (and the statement for holding returns 0 too)
I also tried witch trunc(val_dt,'DDD') with the same result (without trunc it is the same issue)
please help if you can, thanks in advance! -
I am using the existNode function to check whether a specific node exists or has a value for it in the XML.
So, am using it within an IF condition as below;
IF L_xml.existSNode('/ItemFamily/Style/Item/Attributes/ItemAttributes/ExtRefNo/text()') > 0 THEN
DBMS_OUTPUT.PUT_LINE('L_xml = Style exists');
END IF;
Here L_xml is my initial XML message received which is a CLOB converted to an XMLTYPE.
The above works fine.
But after I do an EXTRACT operation on the above XML to get only the portion of it (from a particular start tag to its corresponding end tag), and feed this output for my existNode function as below;
IF L_itm_xml.existSNode('/ItemFamily/Style/Item/Attributes/ItemAttributes/ExtRefNo') > 0 THEN
DBMS_OUTPUT.PUT_LINE('itm_xml = ');
END IF;
It does not give me the desired output.
I would like to know, if there is any restriction on the existNode usage.
Am asking this coz am a bit skeptical on whether this is happening due to XML being stripped off its header.
Could someone please help me find an answer for this.The sample data is as below;
<?xml version="1.0" encoding="utf-8"?>
<ItemFamily>
<Style>
<Item>
<ParentExtRefNo>str1234</ParentExtRefNo>
<PackInd>str1234</PackInd>
<ItemLevel>str1234</ItemLevel>
<TranLevel>str1234</TranLevel>
<Diff1>str1234</Diff1>
<Diff2>str1234</Diff2>
<Diff3>str1234</Diff3>
<Diff4>str1234</Diff4>
<ItemDesc>str1234</ItemDesc>
<ShortDesc>str1234</ShortDesc>
<SuggRetail>str1234</SuggRetail>
<HandlingTemp>str1234</HandlingTemp>
<HandlingSens>str1234</HandlingSens>
<SellableInd>str1234</SellableInd>
<OrderableInd>str1234</OrderableInd>
<ShipAloneInd>str1234</ShipAloneInd>
<Dept>str1234</Dept>
<Class>str1234</Class>
<Subclass>str1234</Subclass>
<Comments>str1234</Comments>
<GiftWrapInd>str1234</GiftWrapInd>
<CheckUDAInd>str1234</CheckUDAInd>
<OriginalRetail>str1234</OriginalRetail>
<LastUpdateId>str1234</LastUpdateId>
<ForecastInd>str1234</ForecastInd>
<Suppliers>
<ItemSupplier>
<Supplier>str1234</Supplier>
<PrimarySuppInd>str1234</PrimarySuppInd>
<VPN>str1234</VPN>
<DirectShipInd>str1234</DirectShipInd>
<LastUpdateId>str1234</LastUpdateId>
<Countries>
<SuppCountry>
<SuppCountryType>str1234</SuppCountryType>
<OriginCountryId>str1234</OriginCountryId>
<PrimarySupplierInd>str1234</PrimarySupplierInd>
<PrimaryCountryInd>str1234</PrimaryCountryInd>
<SuppPackSize>str1234</SuppPackSize>
<InnerPackSize>str1234</InnerPackSize>
<UnitCost>str1234</UnitCost>
<LastUpdateId>str1234</LastUpdateId>
<Dimensions>
<SuppCountryDim>
<DimType>str1234</DimType>
<DimObject>str1234</DimObject>
<Height>str1234</Height>
<Width>str1234</Width>
<Length>str1234</Length>
<LwhUOM>str1234</LwhUOM>
<Weight>str1234</Weight>
<NetWeight>str1234</NetWeight>
<WeightUOM>str1234</WeightUOM>
<LastUpdateId>str1234</LastUpdateId>
</SuppCountryDim>
</Dimensions>
</SuppCountry>
</Countries>
</ItemSupplier>
</Suppliers>
</Item>
</Style>
</ItemFamily>
The L_xml will have this as its value.
The L_itm_xml will have the subset of the XML extracted from it as its value.
As below;
<Item>
<ParentExtRefNo>str1234</ParentExtRefNo>
<PackInd>str1234</PackInd>
<ItemLevel>str1234</ItemLevel>
<TranLevel>str1234</TranLevel>
<Diff1>str1234</Diff1>
<Diff2>str1234</Diff2>
<Diff3>str1234</Diff3>
<Diff4>str1234</Diff4>
<ItemDesc>str1234</ItemDesc>
<ShortDesc>str1234</ShortDesc>
<SuggRetail>str1234</SuggRetail>
<HandlingTemp>str1234</HandlingTemp>
<HandlingSens>str1234</HandlingSens>
<SellableInd>str1234</SellableInd>
<OrderableInd>str1234</OrderableInd>
<ShipAloneInd>str1234</ShipAloneInd>
<Dept>str1234</Dept>
<Class>str1234</Class>
<Subclass>str1234</Subclass>
<Comments>str1234</Comments>
<GiftWrapInd>str1234</GiftWrapInd>
<CheckUDAInd>str1234</CheckUDAInd>
<OriginalRetail>str1234</OriginalRetail>
<LastUpdateId>str1234</LastUpdateId>
<ForecastInd>str1234</ForecastInd>
<Suppliers>
<ItemSupplier>
<Supplier>str1234</Supplier>
<PrimarySuppInd>str1234</PrimarySuppInd>
<VPN>str1234</VPN>
<DirectShipInd>str1234</DirectShipInd>
<LastUpdateId>str1234</LastUpdateId>
<Countries>
<SuppCountry>
<SuppCountryType>str1234</SuppCountryType>
<OriginCountryId>str1234</OriginCountryId>
<PrimarySupplierInd>str1234</PrimarySupplierInd>
<PrimaryCountryInd>str1234</PrimaryCountryInd>
<SuppPackSize>str1234</SuppPackSize>
<InnerPackSize>str1234</InnerPackSize>
<UnitCost>str1234</UnitCost>
<LastUpdateId>str1234</LastUpdateId>
<Dimensions>
<SuppCountryDim>
<DimType>str1234</DimType>
<DimObject>str1234</DimObject>
<Height>str1234</Height>
<Width>str1234</Width>
<Length>str1234</Length>
<LwhUOM>str1234</LwhUOM>
<Weight>str1234</Weight>
<NetWeight>str1234</NetWeight>
<WeightUOM>str1234</WeightUOM>
<LastUpdateId>str1234</LastUpdateId>
</SuppCountryDim>
</Dimensions>
</SuppCountry>
</Countries>
</ItemSupplier>
</Suppliers>
<UDAs>
<ItemUDA>
<UdaId>str1234</UdaId>
<UdaValue>str1234</UdaValue>
<LastUpdateId>str1234</LastUpdateId>
</ItemUDA>
</UDAs>
<Channels>
<ItemChannel>
<ChannelType>str1234</ChannelType>
</ItemChannel>
</Channels>
<Attributes>
<ItemAttributes>
<ExtRefNo>str1234</ExtRefNo>
<ParentExtRefNo>str1234</ParentExtRefNo>
<Collection>str1234</Collection>
<PerishableInd>str1234</PerishableInd>
<PersAvailInd>str1234</PersAvailInd>
<ShortDesc30>str1234</ShortDesc30>
<ItemType>str1234</ItemType>
<ConveyableType>str1234</ConveyableType>
<GiftWrapType>str1234</GiftWrapType>
<LastUpdateId>str1234</LastUpdateId>
</ItemAttributes>
</Attributes>
<Ticket>
<ItemTicket>
<TicketTypeId>str1234</TicketTypeId>
<LastUpdateId>str1234</LastUpdateId>
</ItemTicket>
</Ticket>
<Carriers>
<CarrierService>
<CarrierSvc>str1234</CarrierSvc>
<DefCarrierSvcInd>str1234</DefCarrierSvcInd>
</CarrierService>
</Carriers>
<Shipping>
<ShipRestrictions>
<Carrier>str1234</Carrier>
<AddressCode>str1234</AddressCode>
</ShipRestrictions>
</Shipping>
<Pricing>
<RetailPrice>
<ZoneId>str1234</ZoneId>
<UnitRetail>str1234</UnitRetail>
<LastUpdateId>str1234</LastUpdateId>
</RetailPrice>
</Pricing>
<PackItems>
<PackItem>
<CompExtRefNo>str1234</CompExtRefNo>
<Qty>str1234</Qty>
<LastUpdateId>str1234</LastUpdateId>
</PackItem>
</PackItems>
</Item>
The existNode is functioning with L_xml as the argument but not with L_itm_xml.
Hope you have the clarity you were seeking out for. -
I was wondering if someone could help me out with a simple function I'm trying to create. I'm kind of new to functions in oracle and I don't know the exact syntax or what it expects from me. I would appreciate it if someone could look at this and point out what I'm doing wrong.
CREATE OR REPLACE FUNCTION freshman_status_term(
pidm IN varchar2
RETURN varchar2 IS term
BEGIN
SELECT sgbstdn_term_code_eff INTO term
FROM sgbstdn
WHERE sgbstdn_pidm = pidm
AND sgbstdn_styp_code = 'F'
AND sgbstdn_stst_code = 'AS'
RETURN term;
END freshman_status_term;
The goal of the function is to find out the term for when a student is listed as a freshman. I keep getting errors though, so something must be wrong with it. Any help is appreciated. Thanks.Sven W. wrote:
>
My code looked exactly like that minus the exception part when I got the error before.Please post the code that you used and the full error message that you got.CREATE OR REPLACE FUNCTION freshman_status_term(
pidm IN varchar2
RETURN varchar2
IS
term sgbstdn.sgbstdn_term_code_eff%TYPE;
BEGIN
SELECT sgbstdn_term_code_eff INTO term
FROM sgbstdn
WHERE sgbstdn_pidm = pidm
AND sgbstdn_styp_code = 'F'
AND sgbstdn_stst_code = 'AS'
RETURN term;
END freshman_status_term;
SELECT freshman_status_term ('216520') FROM dual;
Error: PLS-00103: Encountered the symbol "SELECT" when expecting one of the following:
( - + ; case mod new not null <an identifier>
The error is highlighted right after the BEGIN statement
Edited by: user10548103 on Nov 6, 2008 8:53 AM -
Help with @Prior function
Hi,
I have a requirement for member formula = (Forecast for CurMth - Actuals for CurMth) + (Forecast for PrevMth - Actuals for CurMth) / (Actuals for CurMth - Actuals for PrevMth)
I am using the Prior function for this shown as below
( ( @PRIOR ("Monday Forecast",0,@CurrMbr("Periods")) - @PRIOR ("Actuals",0,@CurrMbr("Periods")) ) + ( @PRIOR ("Monday Forecast",1,@CurrMbr("Periods")) - @PRIOR ("Actuals",1,@CurrMbr("Periods")) ) ) / ( @PRIOR ("Actuals",0,@CurrMbr("Periods")) - @PRIOR ("Actuals",1,@CurrMbr("Periods")) ) ;
I see that @ Prior function is not getting the values for the prev month scenario members. Any help would be appreciated guys.
Thanks.Unless I have totally misunderstood your requirement, you are making this much more difficult than it needs to be!
I would suggest the following steps...
1. Read the Technical Reference entry for @PRIOR
2. Get rid of all those @CURRMBR("Periods") specified as the range across which @PRIOR will operate (the third parameter). The range is an optional parameter which doesn't need to be specified if Periods is tagged as a Time dimension, and in any case, having a single member there is meaningless
3. Don't use @PRIOR with zero specified as the offset - think carefully about what that means. You don't need @PRIOR at all to refer to anything in 'current month'
Good luck! -
Can someone help me out with this? Im trying to create a main function out of this contructor.
public studentID()
int size; //hold returned values from box
int id;
int age;
size = Integer.parseInt(JOptionPane.showInputDialog (" Enter a nummber between 1 & 40")); //dialog box
recCount = 0;
idArray = new int[size];
ageArray = new int[size];
for(int i = 0; i <size; i++) //ask for values (size) times
id =
Integer.parseInt(JOptionPane.showInputDialog ("Enter an ID Number"));
age =
Integer.parseInt(JOptionPane.showInputDialog ("Enter an age"));
inputStudent(age, id); //calles method to put values in array
displayAll();
selectionSort(idArray, ageArray, size);
newNumberTable();
selectionSort(ageArray, idArray, size);
newAgeTable();
}So what's the problem? Dump it all into the main method.
Actually I'd advise thinking carefully about whether it should really be in main(). Generally, IMHO, main should only bootstap an app. The real functionality should be in other methods that main() calls.
Maybe you are looking for
-
I just updated my itunes, on my computer, and now it won't sync with my iphone 4s
HELP!!!
-
I get the above described error when trying to connect to NPS 2012 with a Windows XP machine I successfully connecting to that server with an Android phone. I started examining the problem and saw the following: 1. The android phone uses some cipher
-
Sales order - MRP - Purchase order
Hi all, I am making sales orders (item category TAN) for items which are not on the stock, after that I am rolling MRP (MD02) and in the final, I have lost the connection between Purchase Order and Sales Order. Is possible to avoid this (maybe with o
-
Help Please: How to Undo Tables to AP divs
I think I did something silly! I was playing around in Dreamweaver on and I was looking under the tabs > Modify > Convert > Tables to AP divs. So I clicked on "Tables to AP divs" (just to see what it would do) THINKING that anything I would have done
-
I keep getting a message that a "script" is running on my computer. I am given the option of discontinuing it--which I do. It works briefly, then the "script" comes back, I get the message again, choose to discontinue it, etc. I cannot upgrade my bro