concatenation in odi

Hello world

I have some doubts in odi. I required 2.

condition 1:

SOURCE: FLAT FILE

TARGET: FLATFILE

In source one column is activity value is 001.I add "AC" to value should come as AC001. I tried the below syntax of interface mapping.

'CA '. CBC. ACTIVITY.

But I get the following error can someone guide me how to on this subject.

-5568: 42568: java.sql.SQLException: expression data type is not Boolean

java.sql.SQLException: expression data type is not Boolean

at org.hsqldb.jdbc.Util.sqlException (unknown Source)

for org.hsqldb.jdbc.JDBCPreparedStatement. < init >(Unknown Source)

at org.hsqldb.jdbc.JDBCConnection.prepareStatement (unknown Source)

at sun.reflect.GeneratedMethodAccessor64.invoke (unknown Source)

at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)

at java.lang.reflect.Method.invoke(Method.java:597)

to oracle.odi.core.datasource.dwgobject.support.OnConnectOnDisconnectDataSourceAdapter$ OnDisconnectCommandExecutionHandler.invoke (OnConnectOnDisconnectDataSourceAdapter.java:200)

to com.sun.proxy. $Proxy2.prepareStatement (unknown Source)

at oracle.odi.runtime.agent.execution.sql.SQLCommand.doInitializeStatement(SQLCommand.java:83)

at oracle.odi.runtime.agent.execution.sql.SQLCommand.getStatement(SQLCommand.java:117)

at oracle.odi.runtime.agent.execution.sql.SQLCommand.getStatement(SQLCommand.java:111)

at oracle.odi.runtime.agent.execution.sql.SQLDataProvider.readData(SQLDataProvider.java:81)

at oracle.odi.runtime.agent.execution.sql.SQLDataProvider.readData(SQLDataProvider.java:1)

at oracle.odi.runtime.agent.execution.DataMovementTaskExecutionHandler.handleTask(DataMovementTaskExecutionHandler.java:70)

at com.sunopsis.dwg.dbobj.SnpSessTaskSql.processTask(SnpSessTaskSql.java:2913)

at com.sunopsis.dwg.dbobj.SnpSessTaskSql.treatTask(SnpSessTaskSql.java:2625)

at com.sunopsis.dwg.dbobj.SnpSessStep.treatAttachedTasks(SnpSessStep.java:577)

at com.sunopsis.dwg.dbobj.SnpSessStep.treatSessStep(SnpSessStep.java:468)

at com.sunopsis.dwg.dbobj.SnpSession.treatSession(SnpSession.java:2128)

to oracle.odi.runtime.agent.processor.impl.StartSessRequestProcessor$ 2.doAction(StartSessRequestProcessor.java:366)

at oracle.odi.core.persistence.dwgobject.DwgObjectTemplate.execute(DwgObjectTemplate.java:216)

at oracle.odi.runtime.agent.processor.impl.StartSessRequestProcessor.doProcessStartSessTask(StartSessRequestProcessor.java:300)

to oracle.odi.runtime.agent.processor.impl.StartSessRequestProcessor.access$ 0 (StartSessRequestProcessor.java:292)

to oracle.odi.runtime.agent.processor.impl.StartSessRequestProcessor$ StartSessTask.doExecute (StartSessRequestProcessor.java:855)

at oracle.odi.runtime.agent.processor.task.AgentTask.execute(AgentTask.java:126)

to oracle.odi.runtime.agent.support.DefaultAgentTaskExecutor$ 2.run(DefaultAgentTaskExecutor.java:82)

at java.lang.Thread.run(Thread.java:662)

Caused by: org.hsqldb.HsqlException: expression data type is not Boolean

at org.hsqldb.error.Error.error (unknown Source)

at org.hsqldb.error.Error.error (unknown Source)

at org.hsqldb.ExpressionLogical.resolveTypesForLogicalOp (unknown Source)

at org.hsqldb.ExpressionLogical.resolveTypes (unknown Source)

at org.hsqldb.QuerySpecification.resolveExpressionTypes (unknown Source)

at org.hsqldb.QuerySpecification.resolveTypesPartOne (unknown Source)

at org.hsqldb.QuerySpecification.resolveTypes (unknown Source)

at org.hsqldb.QueryExpression.resolve (unknown Source)

at org.hsqldb.ParserDQL.compileCursorSpecification (unknown Source)

at org.hsqldb.ParserCommand.compilePart (unknown Source)

at org.hsqldb.ParserCommand.compileStatement (unknown Source)

at org.hsqldb.Session.compileStatement (unknown Source)

at org.hsqldb.StatementManager.compile (unknown Source)

at org.hsqldb.Session.execute (unknown Source)

... more than 26

CONDITION 2:

I need to divide a value.

for example. 10100001 I need to divide as 10100 and 001

Concerning

Roshan

Make sure your transformation is made in the staging. And staging must be in RDBMS.

Chantal

http://dwteam.in

Tags: Business Intelligence

Similar Questions

  • Unable to capture logs while using parallel processing of ODI

    Hi all

    I have a requirement to run a same package at the same time in different executions. I used parallel processing in ODI by changes to the physical topology pattern and changing the km.

    Execution seems fine. But I am facing problem while capturing errors by using step sqlunload.

    I give the query as below

    Select the id of E$ _ '#V_Session' _employee

    V_Session is a variable of refreshment where I enter the session number

    employee is my target table.

    This step is to throw an error "SQL COMMAND NOT PROPERLY ENDED"

    I tried all the operator of concatenation of sets are also used, but did not work

    Any help on this is much appreciated

    Thanks in advance

    Hello

    In the module knowledge IKM, after validation transaction add a step further and place it under code command on the target tab and choose tehcnology as tool ODI

    «OdiSqlUnload "-LEADER = D:\LOG_DATA\E$ _ <%=odiRef.getSession("SESS_NO")%>.log '"-DRIVER = oracle.jdbc.OracleDriver "«-URL=jdbc:oracle:thin:@localhost:1521:XE ' '-USER = test" "-PASS = aYyaJAjLcbZAyaAiJMYtdp" "-FILE_FORMAT = VARIABLE" "-ROW_SEP = \r\n" "-DATE_FORMAT = YYYY/MM/DD hh: mm:" "-CHARSET_ENCODING = ISO8859_1" ""-XML_CHARSET_ENCODING = ISO-8859-1 "»

    Select * from E$ _ <%=snpRef.getSession("SESS_NO")%>

    Note: Change the below set values in above content

    -FILE

    -PILOT

    -URL

    USER

    PASS

    Kind regards

    Phanikanth

  • How to rename a file flat concatenation date and time, file name?

    I created a package where I run a first interface that uses a flat file to a server and load into a table of Teradata.

    After using the OdiFtpPut API, I used a FTP file and send to an outfit.

    Given that this procedure works every day, I need when FTP get concatenation destination file name, the date and time of execution.

    What is the best practice for this?

    using the odi APIs, you can get the date and time

    <%=odiRef.getSysDate("dd_MM_yyyy_hh_mm_ss")%>
    

    To rename, you can use the operating system command or using the command/UNIX windows and rename the file by adding the getsystdate API.

    Hope this fixes your condition

  • Y at - it a safe application for concatenating several files into one .rtf?

    Y at - it a safe application for concatenating several files into one .rtf?

    Why do you do this?

    Is it arril (3D image files) or .rtf (Rich Text Format) files?

  • Concatenated RAID

    My concatenated RAID has a drive that has failed. That a single disk can be replaced without losing any data?

    Since the concatenated RAID doesn't distribute data on Member disks, then you can probably replace the bad drive without data loss. Make a security backup.

  • pairs of IQ should be concatenated before fifo had?

    I'm trying to understand the 'Xcvr (FPGA) .vi Streaming' vi which is located in the BasicTX_BasicRX project. This is the example that does everything on the fpga and works with the 310 x (I hope). If I understand each 16-bit pair IQ is concatenated in a 32-bit integer before being sent to a FIFO. Is there a reason I can't use 2 16-bit FIFO? Is there a risk that they might fall out of sync relative to each other if they are in the same timed loop? It would certainly be easier to read.

    apchar,

    I'm not familiar with the BasicTX_BasicRX project, but if it is based on the USRP Simple streaming project, then Yes, you can divide your IQ samples (and channels) into FIFOs separated without any problems of consistency. You need to change your host code to fetch multiple FIFOs, but you will not have to worry of their "falling out of sync with eachother.

  • build the table by concatenating berries 2

    Greetings,

    I have the need to combine tables 1 d (Qty 2) to TestStand for the first time each. They both will always be the same size. I would build by concatenating.

    Table 1 (String): some number 1, some number2, some Number3

    Table 2 (string): string description1, description2 string, string description3

    Output array: some number 1 string description1, some number 2 string description2, some Number3 string description3 (so it would be total 3 items)

    Thanks in advance for any help.

    Chazzzmd

    Hello

    You can concatenate 2 strings in TestStand using the operator ' + '.

    Example:

    Locals.Output = Locals.String1 + "" + Locals.String2

    Concatenate individual pieces of the string into arrays of strings, an easy approach would be to use a loop structure to browse table and concatenate all of them. Please find below a sequence file simple (I created it in 2010 TestStand) it does using the "For Each" as well as "Looping" property loop structure within the parameters of the step. I hope this helps you.

  • Concatenation of Slash Code series

    I'm in communication with a crystalfontz lcd serialy.

    I need to send a combination of command that appears as follows.

    \0E\32

    The codes are entered in hexadecimal, 0E means adjust the intensity of the backlight.  32 is Hex for 50 intensity of 50% of sense.

    The intensity level is entered by the user.  The command is encoded with a constant string in code slash mode.

    When I try to combine the number of input by the user to the command, I can't slash inbetween the command and the value.

    I tried the concatenation of the strings together and I tried to use a format string, but neither work.

    If I manually add the Center '-' what is actually in bar mode oblique is «»

    Any ideas?

    Attached are two methods, I'm working with, but nothing helped.

    Thank you

    Dave


  • String concatenation and put into registry to offset slowing computer

    Hi all

    I tried to create a record of comms between LabVIEW and an Arduino by concatenating the current message with previous posts and put in a shift register.  After a few hours the LabVIEW began to crawl.

    I had a vague idea that you could write a string indicator without wiping the old content.  I thought that if I could do that is there not a huge overload copy all a larger string.

    Am I dreaming?

    Thank you

    If you need registration integer comm I would say the comms streaming the file.  Make sure you put a Boolean value in to turn off logging.

    Usually, it's one of those things you just do everything in debugging.  If so use OR spy rather than writing your own debugger.

  • Entries are concatenated in the same column in the excel file

    Hi, I really need help in this emergency. The problem is when I open the spreadsheet file after you run the program below, all the values that I believe are concatenated in the same column. However, there are 2 different analog inputs which I want in 2 different columns. I'm getting the 2 waveforms in the same graph, but when I open the excel file, it seems that the entries are concatenated in the same column. Someone knows how to fix this? Thank you very much.

    Hi Ben 64,.

    Thanks a lot again. I did as you said and I removed the dynamic data and logged files added directly to the results. I'm still checking if the program works as I can branch only when I return to work tomorrow. Tell me if you think it might be able to work this time. Thanks a lot again!

  • Newbie need help with string concatenation function.

    I'm totally new to LabView and am trying to work on a project that someone worked in the past.  I came to a string function concatenated on one of the existing provisions and only seen on some entries of the string function has an order of 'rel' and 'g '.  I don't know if it's a common command or what it is.  This is VI is that it requires a user to enter a base dimension (x-axis starting point and end point) and executes the steps in the sample desired within the "point of departure" and "end point".  "a3" is the name of the x-axis.  but I'm not sure of the meaning 'rel' and 'g '.  I posted part of the diagram.  Any help would be appreciated.  Thank you!

    This isn't a question of LabVIEW, but very specific to the device connected to the other end of the serial port. Do you have any documentation for it?

    Basically, the program needs form a consiting of command of a delimiter character, value and end of key word, etc. for example.

    Who wrote this program. It seems too complex and convoluted. Under certain conditions, it seems to send two commands at the same time, and there is no way to determine the order in which they run. Maybe it doesn't matter, but maybe it does. Most likely, what you need is a single structure dealing with a case for each condition and a unique series in the end writing. You can reach the actual program? There are also a lot of duplicate code. What is the purpose of the operations 1 x? Is this a Subvi?

  • String concatenation without loop

    Hello

    I have an array of strings containing numbers in engineering as format below:

    5.34000E - 10

    3.23245E - 1

    -8.43560E - 9

    I'm trying to concatenate to this array of strings to a header, which is a unique, formed string using the string concatenation function.  So, I would that my output as follows:

    Header line 1

    Header line 2

    Row header 3

    5.34000E - 10

    3.23245E - 1

    -8.43560E - 9

    However, the result is currently reads:

    Header line 1

    Header line 2

    Row header 3

    5.34000E - 103.23245E - 1 - 8.43560E - 9

    I can get the desired result using a loop for, but I do not like concatenate them strings function seems to run very slowly in the loop.  Is there a way I can get the desired result without using a loop for?

    Thank you.

    It is a real possibility that concatenate strings runs slowly in a loop For. change the statement "I find that Array Build runs slowly in a for loop" and we would get a serious discussion of fly memory. Absolutely no difference here, maybe even worse because the strings are more difficult to predict than most data types. There is perhaps not a miracle solution to make it faster, but there might be ways to ensure there are no longer than necessary. I probably just build the header as its own array of channels and build table allows to reach the two (concatenate entries of course). Writing to text file will manage an array of strings directly when the time comes.

  • Adds data to the binary file as concatenated array

    Hello

    I have a problem that can has been discussed several times, but I don't have a clear answer.

    Normally I have devices that produce 2D image tables. I have send them to collection of loop with a queue and then index in the form of a 3D Board and in the end save the binary file.

    It works very well. But I'm starting to struggle with problems of memory, when the number of these images exceeds more than that. 2000.

    So I try to enjoy the fast SSD drive and record images in bulk (eg. 300) in binary file.

    In the diagram attached, where I am simulating the camera with some files before reading. The program works well, but when I try to open the new file in the secondary schema, I see only the first 300 images (in this case).

    I read on the forum, I have to adjust the number of like -1 in reading binary file and then I can read data from the cluster of tables. It is not very good for me, because I need to work with the data with Matlab and I would like to have the same format as before (for example table 3D - 320 x 240 x 4000). Is it possible to add 3D table to the existing as concatenated file?

    I hope it makes sense :-)

    Thank you

    Honza

    • Good to simulate the creation of the Image using a table of random numbers 2D!  Always good to model the real problem (e/s files) without "complicating details" (manipulation of the camera).
    • Good use of the producer/consumer in LT_Save.  Do you know the sentinels?  You only need a single queue, the queue of data, sending to a table of data for the consumer.  When the producer quits (because the stop button is pushed), it places an empty array (you can just right click on the entry for the item and choose "Create Constant").  In the consumer, when you dequeue, test to see if you have an empty array.  If you do, stop the loop of consumption and the output queue (since you know that the producer has already stopped and you have stopped, too).
    • I'm not sure what you're trying to do in the File_Read_3D routine, but I'll tell you 'it's fake  So, let's analyze the situation.  Somehow, your two routines form a producer/consumer 'pair' - LT_Save 'product' a file of tables 3D (for most of 300 pages, unless it's the grand finale of data) and file_read_3D "consume" them and "do something", still somewhat ill-defined.  Yes you pourrait (and perhaps should) merge these two routines in a unique "Simulator".  Here's what I mean:

    This is taken directly from your code.  I replaced the button 'stop' queue with code of Sentinel (which I won't), and added a ' tail ', Sim file, to simulate writing these data in a file (it also use a sentinel).

    Your existing code of producer puts unique 2D arrays in the queue of data.  This routine their fate and "builds" up to 300 of them at a time before 'doing something with them', in your code, writing to a file, here, this simulation by writing to a queue of 3D Sim file.  Let's look at the first 'easy' case, where we get all of the 300 items.  The loop For ends, turning a 3D Board composed of 300 paintings 2D, we simply enqueue in our Sim file, our simulated.  You may notice that there is an empty array? function (which, in this case, is never true, always False) whose value is reversed (to be always true) and connected to a conditional indexation Tunnel Terminal.  The reason for this strange logic will become clear in the next paragraph.

    Now consider what happens when you press the button stop then your left (not shown) producer.  As we use sentries, he places an empty 2D array.  Well, we dequeue it and detect it with the 'Empty table?' feature, which allows us to do three things: stop at the beginning of the loop, stop adding the empty table at the exit Tunnel of indexing using the conditional Terminal (empty array = True, Negate changes to False, then the empty table is not added to the range) , and it also cause all loop to exit.  What happens when get out us the whole loop?  Well, we're done with the queue of data, to set free us.  We know also that we queued last 'good' data in the queue of the Sim queue, so create us a Sentinel (empty 3D table) and queue for the file to-be-developed Sim consumer loop.

    Now, here is where you come from it.  Write this final consumer loop.  Should be pretty simple - you Dequeue, and if you don't have a table empty 3D, you do the following:

    • Your table consists of Images 2D N (up to 300).  In a single loop, extract you each image and do what you want to do with it (view, save to file, etc.).  Note that if you write a sub - VI, called "process an Image" which takes a 2D array and done something with it, you will be "declutter" your code by "in order to hide the details.
    • If you don't have you had an empty array, you simply exit the while loop and release the queue of the Sim file.

    OK, now translate this file.  You're offshore for a good start by writing your file with the size of the table headers, which means that if you read a file into a 3D chart, you will have a 3D Board (as you did in the consumer of the Sim file) and can perform the same treatment as above.  All you have to worry is the Sentinel - how do you know when you have reached the end of the file?  I'm sure you can understand this, if you do not already know...

    Bob Schor

    PS - you should know that the code snippet I posted is not 'properly' born both everything.  I pasted in fact about 6 versions here, as I continued to find errors that I wrote the description of yourself (like forgetting the function 'No' in the conditional terminal).  This illustrates the virtue of written Documentation-"slow you down", did you examine your code, and say you "Oops, I forgot to...» »

  • Size of the concatenated string variable?

    Hi all

    I have the following question:

    In Labview, there is a function called concatenate strings. When I want to 'Add' three strings I can pull the string to concatenate to the size three for three entries.

    Is there a possibility to implement a digital control where I can enter a number that ranges from my entries for the string concatenation function?

    If I want to add three channels I enter 3 in my digital control, my function gets three entries. After my program that I want to have five added channels so I would like to enter 5. Is it possible to do this?

    Thank you for your help in advance.

    Best regards

    Tresdin

    It seems to me that your program should be in a loop FOR, autoindexing on the points table.

  • With the help of strings concatenated in the Structure of the case

    Hello world

    I'm all new to LabView. Right now, I just trying to build a graphic program of different waves (such as the sine or square) with or without different types of noise. I concatenated two strings and then participating in a housing structure. Nothing graphic when have two concatenated options, but it does not work when it's just the different types of wave are chosen. I think it might have to do with how I'm the each case titration structure option, but I'm not sure. For any help or suggestion is greatly appreciated.

    I would use a sequence of structures of the case. Take it step by step. Use enumerations for readability.

Maybe you are looking for