Using Formatted Strings in Jython

Hi !
Who has experience with Jython inside ODI with the shipped Jython version 2.1 ?
I tried to use a formatted String which means:
a="""bfdlhfjds
fjdklajfkd
jfkdlajfk"""
this returns back the following error-message:
Traceback (innermost last):
(no code object) at line 0
File "<console>", line 2
SyntaxError: Lexical error at line 2, column 0. Encountered: <EOF> after : ""
i tried it within a standalone installed Jython-Version "2.2.1" on my client and there it works fine.
Although it is well documented in the Jythondoc(2.1) my odi 10.1.3.4 - jythoy version 2.1 seems not to has this implemented.
Nevertheless i need it by all means because: if i use Jython to generate a SQL-STMT and use e.g. the <%=odiRef.getFilter()%> -Function in which a CR/LF always can happen, the substitution of ODI substitutes it with multiple lines and the jython-interpreter cannot interpret and gives of course back an error. It's a real nogo !
thanks in advance
br harald

You can't use it at command line...
But inside a file it's work...
Inside a KM it 's work. have a look in the LKM SQL to SQL (Jython)
step Load data (JYTHON)

Similar Messages

  • Format string problem

    Hi,
    Sorry if this has already been asked, couldn't find it in the pages of results that came up for string formatting.
    I'm trying to output a string to serial, to control a robot arm for my undergrad final year project. At the moment it'll work if I put in a manually typed in string, but I want to make a nice VI GUI for the 'bot. To do this I need combined strings
    eg
    at the moment if I type in "joint\s1\s90\r\n", I'll get the 1st joint to move 90 degrees, and a return and a new line.
    However, if I have these things combined using format string or concatenate string, it won't run.
    Any ideas why? No one in my college seems to know, so I thought I'd ask here.
    Thanks

    Did you try something like this?
    Note: All strings are displayed as slash code...
    Message Edited by paulmw on 11-28-2006 08:09 AM
    Attachments:
    bd.JPG ‏8 KB
    fp.JPG ‏6 KB

  • How can you use a format string to make all information in a string line up and stack up?

    I am trying to post data on screen using "format into string" and make all data line up into one indicator string

    Not exactly sure what you are looking for. Could you elaborate, or post a screen shot of what you are trying to accomplish. I would hate to give you an answer based on my interpretation of your problem.

  • Can I use bpws:getVariableData() within oraext:format-string() ?

    I have problem in using the following expression in my "Assign" activity:
    oraext:format-string('|{0}|',bpws:getVariableData('inputVariable','payload','/client:process/client:name_param))
    I get the following error
    <env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/"><env:Header/><env:Body><env:Fault><faultcode>env:Server</faultcode><faultstring>XPath expression failed to execute.
    An error occurs while processing the XPath expression; the expression is oraext:format-string(‘|{0}|',bpws:getVariableData('inputVariable','payload','/client:process/client: name_param')).
    The XPath expression failed to execute; the reason was: internal xpath error.
    Check the detailed root cause described in the exception message text and verify that the XPath query is correct.
    </faultstring><faultactor/><detail><exception/></detail></env:Fault></env:Body></env:Envelope>
    Strangely, I can use the following expressions:
    1. concat('|', bpws:getVariableData('inputVariable','payload','/client:process/client:name_param))
    2. oraext:format-string('|{0}|', 'A value')
    Hence, it seemed to me that oraext:format-string() can't take the return value of bpmw:getVariableData() for some unknown reason.
    As I need to use the "format-string" function to create a complicated value based on a number of input values , I need to find a way to work around this.
    Otherwise, I am force to use the "concat" function which make it extra ugly to build the value I need.
    Please help!

    You need to wrap each parameter with striing().
    Something like this: oraext:format-string(*string*($inputVariable.payload/client:inputBase), string($inputVariable.payload/client:inputVal0))
    This way the oraext:format-string will work fine from bpel assign activity as well.
    Racheli.

  • Format String using XML attributes

    I need to format a string based on attributes from a schema. I am attempting to do this using an Assign activity and the java embedded format string function. Here is a simplified version of what I am trying to do:
    oraext:format-string('Service Error COD={0}', bpws:getVariableData('caXMLError','/CAXMLERROR/CLIERR/@COD'))
    When I execute this line I get:
    XPath expression failed to execute. An error occurs while processing the XPath expression; the expression is oraext:format-string('Service Error COD={0} ',bpws:getVariableData('caXMLError','/CAXMLERROR/CLIERR/@COD')). The XPath expression failed to execute;
    The value at bpws:getVariableData('caXMLError','/CAXMLERROR/CLIERR/@COD' is valid because I can create a dummy xsd:string variable and set it equal to that.
    I also tried to wrap the getVariableData with the get_content_as_string methods and neither worked. I also verified that my format-string function is working because when I substitute just a plain string like ‘T01’ the string is successfully created.
    Any ideas what I am doing wrong or how I can accomplish this?

    If the xml document is to be stored in the Oracle database with the XML SQL Utility, defne elements instead of attributes. XSU utility does not map the attributes of an xml document to the database table.
    Further ref:
    http://xml.coverpages.org/elementsAndAttrs.html

  • Load associate format string using DLR

    Hi,
    I'm trying to load an associate format string with a DLR from a text datafile.
    My DLR has been built like this :
    PARENT0,Account CHILD0, Account ALIAS0,Account PROPERTY0,Account PROPERTY0,Account PROPERTY0,Account
    Father Child Alias Store ^ mdxformat(...)
    The mdxformat(...) code works fine when I add it manually in the outline via EAS
    But everytime I load with a DLR I got this error message
    \\Record #23 - Error adding Dynamic calc property to member Child (3320)
    \\Record #23 -      Level 0 virtual members must have a formula associated with them
    I'm using Essbase 11.1.2
    I removed the mdxformat from my datafile and the member is load properly.
    Regards,
    Franck

    Finally no solution, I added it manually

  • How to skip 3 chars when use "scanf from string" by the parameter "format string" ?

    hi, I want to read a num 123 from the string like that "sfg123" "fgd123" "ghj123"
    I know that I can use "%3s" to skip 3 chars, but it will add an output to "scanf from string"
    So, how to use parameter "format string" not only to skip 3 chars, but also add no output to the "scanf from string"
    Solved!
    Go to Solution.
    Attachments:
    1.JPG ‏15 KB

    Hi Chenyin,
    Try this VI....
    I think... This is what you are expecting....
    <<Kudos are welcome>>
    ELECTRO SAM
    For God so loved the world that he gave his one and only Son, that whoever believes in him shall not perish but have eternal life.
    - John 3:16

  • How too use the string tokeniser class to format date strings

    Using the code below I want to write a method which takes a string as a parameter and process it as follows:
    Input: 21/07/62
    Output: 21st July 62
    I wish to do this using the string tokenizer class. Can anyone help??
    import java.io.*;
    public class Input
    public static void main(String args[]) throws IOException
    String theString;
    BufferedReader stdin = new BufferedReader(
    new InputStreamReader(System.in));
    System.out.println("Enter your string now please");
    theString = stdin.readLine(); // throws IOException
    System.out.println("You entered ***" + theString + "***");
    }

    You can certainly use a StringTokenizer to parse your date into three numbers but I think you should use SimpleDateFormat, which will even help you generate your desired format: http://java.sun.com/j2se/1.4/docs/api/java/text/SimpleDateFormat.html

  • Powershell use Connection String to query Database and write to Excel

    Right now I have a powershell script that uses ODBC to query SQL Server 2008 / 2012 database and write to EXCEL
    $excel = New-Object -Com Excel.Application
    $excel.Visible = $True
    $wb = $Excel.Workbooks.Add()
    $ws = $wb.Worksheets.Item(1)
    $ws.name = "GUP Download Activity"
    $qt = $ws.QueryTables.Add("ODBC;DSN=$DSN;UID=$username;PWD=$password", $ws.Range("A1"), $SQL_Statement)
    if ($qt.Refresh()){
    $ws.Activate()
    $ws.Select()
    $excel.Rows.Item(1).HorizontalAlignment = $xlCenter
    $excel.Rows.Item(1).VerticalAlignment = $xlTop
    $excel.Rows.Item("1:1").Font.Name = "Calibri"
    $excel.Rows.Item("1:1").Font.Size = 11
    $excel.Rows.Item("1:1").Font.Bold = $true
    $filename = "D:\Script\Reports\Status_$a.xlsx"
    if (test-path $filename ) { rm $filename }
    $wb.SaveAs($filename, $xlOpenXMLWorkbook) #save as an XML Workbook (xslx)
    $wb.Saved = $True #flag it as being saved
    $wb.Close() #close the document
    $Excel.Quit() #and the instance of Excel
    $wb = $Null #set all variables that point to Excel objects to null
    $ws = $Null #makes sure Excel deflates
    $Excel=$Null #let the air out
    I would like to use connection string to query the database and write results to EXCEL, i.e.
    $SQL_Statement = "SELECT ..."
    $conn = New-Object System.Data.SqlClient.SqlConnection
    $conn.ConnectionString = "Server=10.10.10.10;Initial Catalog=mydatabase;User Id=$username;Password=$password;"
    $conn.Open()
    $cmd = New-Object System.Data.SqlClient.SqlCommand($SQL_Statement,$conn)
    do{
    try{
    $rdr = $cmd.ExecuteReader()
    while ($rdr.read()){
    $sql_output += ,@($rdr.GetValue(0), $rdr.GetValue(1))
    $transactionComplete = $true
    catch{
    $transactionComplete = $false
    }until ($transactionComplete)
    $conn.Close()
    How would I read the columns and data for $sql_output into an EXCEL worksheet. Where do I find these tutorials?

    Hi Q.P.Waverly,
    If you mean to export the data in $sql_output to excel document, please try to format the output with psobject:
    $sql_output=@()
    do{
    try{
    $rdr = $cmd.ExecuteReader()
    while ($rdr.read()){
    $sql_output+=New-Object PSObject -Property @{data1 = $rdr.GetValue(0);data2 =$rdr.GetValue(1)}
    $transactionComplete = $true
    catch{
    $transactionComplete = $false
    }until ($transactionComplete)
    $conn.Close()
    Then please try to use the cmdlet "Export-Csv" to export the data to excel like:
    $sql_output | Export-Csv d:\data.csv
    Or you can export to worksheet like:
    $excel = New-Object -ComObject Excel.Application
    $excel.Visible = $true
    $workbook = $excel.Workbooks.Add()
    $sheet = $workbook.ActiveSheet
    $counter = 0
    $sql_output | ForEach-Object {
    $counter++
    $sheet.cells.Item($counter,1) = $_.data1$sheet.cells.Item($counter,2) = $_.data2}
    Refer to:
    PowerShell and Excel: Fast, Safe, and Reliable
    If there is anything else regarding this issue, please feel free to post back.
    Best Regards,
    Anna Wang

  • The MAC signature found in the HTTP request '***' is not the same as any computed signature. Server used following string to sign: 'POST

    Hi,
    When trying with Postman sending a REST call to Azure Storage Queues I get:
    The MAC signature found in the HTTP request '***' is not the same as any computed signature. Server used following string to sign: 'POST.
    The code I have for creating the Authorization Header:
    var accountName = "my_account";
    string key = ConfigurationManager.AppSettings["my_access_key"];
    DateTime dt = DateTime.Now;
    string formattedDate = String.Format("{0:r}", dt);
    var canonicalizedHeaders = "x-ms-date:" + formattedDate + "\n" + "x-ms-version:2009-09-19" + "\n" ;
    var canonicalizedResource = "/my_account/myqueue/messages";
    var stringToSign = String.Format("POST,\n\n\n\n\n\n\n\n\n\n\n{0}{1}", canonicalizedHeaders, canonicalizedResource);
    stringToSign = HttpUtility.UrlEncode(stringToSign);
    HMACSHA256 hmac = new HMACSHA256(Encoding.UTF8.GetBytes(key));
    var signature = Convert.ToBase64String(hmac.ComputeHash(Encoding.UTF8.GetBytes(stringToSign)));
    var authorizationHeader = String.Format(CultureInfo.InvariantCulture, "SharedKey {0}:{1}", accountName, signature);
    return authorizationHeader;
    Anyone any idea what I'm missing/doing wrong?
    Additional question: do i have to create for every message I want to send a new Authorization header? Or is there an option (as with Service Bus Topics) to create a header that can be used for a certain timeframe?
    Thanks.

    One issue is with this line of code:
    HMACSHA256 hmac = new HMACSHA256(Encoding.UTF8.GetBytes(key));
    Please use the following:
    HMACSHA256 hmac = new HMACSHA256(Convert.FromBase64String(key));
    and that should take care of the problem.
    Regarding your question, "do i have to create for every message I want to send a new Authorization header? Or is there an option (as with Service Bus Topics) to create a header that can be used for a certain timeframe?"
    With your current approach, the answer is yes. What you can do is create a Shared Access Signature on the queue which will be valid for certain duration and then use that for posting messages to a queue using simple HttpWebRequest/HttpWebResponse.
    Hope this helps.

  • Parsing formatted String to Int

    How can I parse formatted string to Integer ?
    I have a formated string like this $900,000 and I need to convert it to 900000 so I could do calculations with it.
    I tried something like this
    NumberFormat nf = NumberFormat.getIntegerInstance(request.getLocale());
    ttlMargin=nf.parse(screenVal);I got this exception
    "java.lang.NumberFormatException: For input string: "$1,050,000""

    I am working on the JSP file that provides
    margins,sales etc. I am reading this data off the
    screen where it is beeing displayed according to the
    accounting practices.
    That's why I get it as a formatted string and why I
    am trying covert that string to the numberScreen-scraping is a problematic, bad design. It sounds like what you really want is to call a web service which returns its results as data that a program can understand (XML, for example), not HTML (which is meant more for humans to read). I know, you probably can't change the design at this point... just food for thought. In the meantime, you'll probably have to manually parse those strings yourself by stripping out the '$' and ',' characters and then use parseInt on the result.

  • How to get how many lines a formatted string has

    ih, is there a way to get by formula code the object's number of lines once it has been formatted by the format editor checking the the Can Grow check with 0 as maximum number of lines?
    The Can Grow check can offer you to enter the Maximum number of lines the object can grow...so...the object's number of lines somewhere is stored in order to confront it with the number one has entered in Maximum number of lines' input box.
    thank you in advance

    Hello,
    No or maybe, the problem is is when you select 0 it's unlimited, CR simply fills the first line and continues on until no more test to display. Then it determines how much space is left over for the rest of the report sections and so on...
    Possibly you could use the String Length function and divide by the page width:
    numbervar mynumbervar;
    mynumbervar :=  2 / tonumber(Length ({Command2.ROW_UNIT_NAME}));
    2 is the width of the field object in inches and then you also have to determine how many characters per inch the font is going to use.
    There are 1440 twips per inch and if your font is set to 10 then it's something like 1440/10 ( although you need to determine how many characters per inch the font really uses. This can vary depending on the font, most are not fixed width so it's only an estimate..
    Anyways, why do you need to know? CR will simply set the space required?
    Or are you wanting to have the same space all the time and try to determine what that is? If so then you'll also have to set it globally because the format will be evaluated for each time it prints.
    Don

  • ViScanf invalid format string due to #sample size data1, data2,... response

    I'm writing a program which will utilize the internal memeory of the Agilent 34410A DMM for making fast measurements (10K/s).  In order to do this, I need to setup a test, have the data stored to the internal memory, then read and delete it, while other measurements are still happening.  The best command for the read/delete function is the R? command, but it returns the data in a strange format which breaks the ViScanf format string.  
    an example of the R? reading in below:
    R? 2
    #231+2.87536000E-04,+3.18131400E-03
    Is there a way to setup the ViScanf format string to handle this?
    Thanks
    Ryan

    Yes, I am using CVI
    If it was just returning one value I would use a simple viScanf function like this:
    viScanf (vi, "%f", fbuf);
    If you do a READ from in the instrument, it returns an array of floats so you need to adjust you viScan fuction parse the string into an array of floats like this (array of 500 for this example):
    viScanf(vi, "%,500f", fbuf);
    The problem is the data response to the R? command starts with the array size and is then followed by the data (#231+2.87536000E-04,+3.18131400E-03).  In the previous example, I need to delete the #, and parse the 231 into an array size variable and then fill an array (fbuf in this case) with the data.

  • SQL LOADER and ORA-01861: literal does not match format string

    Hi,
    I've to load data through control_file(.ctl) into oracle table through sqlldr. Oracle 11g, win xp.
    as soon as I use - sqlldr dss/dss control=orders.ctl I get error or nothing.
    Text file that is generated after loading fails has the following error.
    Record 1: Rejected - Error on table ORDERS, column O_ORDERDATE.
    ORA-01861: literal does not match format string
    I have checked the format of data to be loaded into Orders table is like this : *1996-01-02.*
    I checked the format of data in my database by querying sysdate from dual i.e. 10-JAN-10
    I thought that changing its format might solve my problem so i tried this:
    SQL> alter session set nls_date_format='YYYY-MM-DD';
    Session altered.
    SQL> select sysdate from dual;
    SYSDATE
    2010-01-10but still i'm getting the same error. I've to load millions of data. how I can solve this issue.
    Please suggest.
    Thanks alot.
    Best Regads,
    Kam

    Hi,
    It's strange ....nobody knew it?. I think this type of load problem will be very common isn't it.... where date column data is in a different format than in the db i.e.
    How to change *1996-01-02* in the Control_file to make it able to load in the table where sysdate is like this: *11-JAN-10*
    Sample data to be loaded is :
    1|36901|O|173665.47|1996-01-02|5-LOW|Clerk#000000951|0|nstructions sleep furiously among |
    Desc Orders
    O_ORDERDATE NOT NULL DATEI have tested this by creating a test table and a test control file by omitting this O_ORDERDATE and then everything was fine, data was inserted but don't know how to load this DATE also.
    Also not able to understand about POSITION in the control file...?
    Regards,
    Kam

  • SQL Error: ORA-01861: literal does not match format string

    Hello,
    I'm trying to do data mining on a web log which recorded one day web access information from a busy web server. I imported the data into Oracle Data miner, and created a table (WEBLOG). The idea is to create a new field, i.e. session, for the users so that each session could be thought as a representative of a user-intent (aka topic). Now based on this, data mining models would be used to cluster(group) the users based on their similarity. The first step is to prepare the data which involves using SQL queries. So first, all I did was to create a function for date and time. This is the following code I used,
    create or replace function ssndate(p_date in varchar2 default '03-01-18',
    p_time in varchar2)
    return number
    $if dbms_db_version.ver_le_10 $then
    deterministic
    $elsif dbms_db_version.ver_le_11 $then
    result_cache
    $end
    as
    begin
    return trunc((to_date(p_date||' '||p_time, 'dd-mm-yy hh24:mi:ss')
    - to_date('01-01-90','dd-mm-yy')) * (86400/2400));
    end ssndate;
    The function ssndate compiled successfully.
    The next step I took was to create a view through the following query,
    create or replace view WEBLOG_VIEWS
    as
    select (select ssndate(LOG_DATE, LOG_TIME) from dual) as "SESSION_DT",
    C_IP,
    CS_USER_AGENT,
    (CS_URI_STEM||'?'||CS_URI_QUERY) as WEB_LINK
    from WEBLOG;
    This was successful as well. The problem is in the next step where I try to do data grouping.
    create table FINAL_WEBLOG as
    select SESSION_DT, C_IP, CS_USER_AGENT,
    listagg(WEB_LINK, ' ')
    within group(order by C_IP, CS_USER_AGENT) "WEB_LINKS"
    from WEBLOG_VIEWS
    group by C_IP, CS_USER_AGENT, SESSION_DT
    order by SESSION_DT
    For this, I got the error,
    Error starting at line 1 in command:
    create table FINAL_LOG as
    select SESSION_DT, C_IP, CS_USER_AGENT,
    listagg(WEB_LINK, ' ')
    within group(order by C_IP, CS_USER_AGENT) "WEB_LINKS"
    from WEBLOG_VIEWS
    group by C_IP, CS_USER_AGENT, SESSION_DT
    order by SESSION_DT
    Error at Command Line:1 Column:7
    Error report:
    SQL Error: ORA-01861: literal does not match format string
    ORA-06512: at "DMUSER.SSNDATE", line 11
    ORA-06512: at line 1
    01861. 00000 - "literal does not match format string"
    *Cause:    Literals in the input must be the same length as literals in
    the format string (with the exception of leading whitespace).
    If the "FX" modifier has been toggled on, the literal must
    match exactly, with no extra whitespace.
    *Action:   Correct the format string to match the literal.
    I don't know where I'm going wrong with this.. the to_date function should be fine. In the data that I possess, the date and time are in no format. Example: 30118 and 0:00:09 respectively. If anyone has any clue about this I would be sincerely grateful for any help that I can get!! It's quite urgent..
    The Oracle version is 11.2.0.1.0
    Edited by: 975265 on Dec 5, 2012 5:31 PM

    975265 wrote:
    Ok.. Looks like I touched a nerve there. I apologize. I'm still a student, and this is the first time that I've tried something at this level. I'm still in the learning process, so I was hoping that someone could point me in the right direction in order to "fix" the data.Not so much touching a nerve as simply trying to implement a very very poor, but all too common, practice. Since you are a student (which we didn't know until this post) most people will cut you some slack. However, this little exchange should now be burned into your brain as you move forward. One of the very first rules of programming is to ALWAYS use the correct data types for your data. And along with that, never ever depend on implicit type conversions - always use the proper explicit conversion functions.
    And as a slight follow-on, when considering the appropriate data type, don't assume that just because we refer to a given element as a 'something number' that it is indeed a number. Telephone "numbers" are NOT numbers. U.S. Social Security "numbers" are NOT numbers. U.S. Postal Zip codes are NOT numbers. All are just character strings which, by convention, we limit to the same characters we use to represent numbers.
    And since this entire discussion came up around the representation of dates, you might want to take a look at http://edstevensdba.wordpress.com/2011/04/07/nls_date_format/
    Now, go forth and be a smarter programmer than your peers.
    Edited by: EdStevens on Dec 6, 2012 6:12 AM

Maybe you are looking for

  • Open Box Warranty Issues and Poor Lenovo Malaysia Costumer Service

    Dear Sir, My name is Azri. I just bought a new free DOS Lenovo G400S from your authorize dealer in penang on 31th March 2014 around 6pm. Since  the unit was a free dos unit, I just brought that laptop home without opening the box for inspection due t

  • Sql not supported in view in physical layer

    hi, I wanna create a view (in physical layer) table type = Select (under General tab in Phyiscal Table property) I have checked the checkbox "Use database specific SQL". and chosen "Oracle 9i" in Database tree. the data structure in the table is in t

  • Lightroom raw processing error - ORF file format

    I am trying to get Lightroom to import files from my Olympus E510. It creates files in raw (.orf) format. The Olympus tool supplied with the camera works fine and reads all of the files. Lightroom says ALL of the files are corrupt. I'd really like to

  • Synch'ing calendar between Outlook 07 and BB DTM 4.3 crashes DTM

    Following problems with BB DTM not even running, clean install of BB DTM 4.3.025 now suffering repeated crashes when synch'ing the calendar between Outlook 07 (fully patched Vista) and my BB 8100... DTM dialog says "processing device calendar" when i

  • Precision of a variable

    how can I do to modify the precision of a variable. In ex: I have an "extended precision" variable in the output of a "formula node" and before I put it into another formula node, I wish to round it to two digit of precision (x,xx). How can I do? Can