ODI Procedure error log syntax
hi
I need to call an odi procedure and an error log needs to be stored on an error table.
I have created an ODI procedure and in command on source select Oracle as technology and the logical schema
here I put
DECLARE
ODI_VAR VARCHAR2(4000);
BEGIN
select ( '<%=odiRef.getPrevStepLog( "MESSAGE" )%>') into ODI_VAR from dual;
END;
and in target tab.
Insert into ERROR_LOG (TASK_NAME,ERROR_DESCRIPTION)
Values ('test','ODI_VAR');
AFTER executing I am getting the below error
900 : 42000 : java.sql.SQLSyntaxErrorException: ORA-00900: invalid SQL statement
java.sql.SQLSyntaxErrorException: ORA-00900: invalid SQL statement
at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:457)
at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:397)
at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:389)
at oracle.jdbc.driver.T4CTTIfun.processError(T4CTTIfun.java:662)
at oracle.jdbc.driver.T4CTTIfun.receive(T4CTTIfun.java:476)
at oracle.jdbc.driver.T4CTTIfun.doRPC(T4CTTIfun.java:204)
at oracle.jdbc.driver.T4C8Odscrarr.doODNY(T4C8Odscrarr.java:101)
at oracle.jdbc.driver.T4CPreparedStatement.doDescribe(T4CPreparedStatement.java:848)
at oracle.jdbc.driver.OracleStatement.describe(OracleStatement.java:5331)
at oracle.jdbc.driver.OracleResultSetMetaData.<init>(OracleResultSetMetaData.java:58)
at oracle.jdbc.driver.OracleResultSetImpl.getMetaData(OracleResultSetImpl.java:274)
at oracle.odi.runtime.agent.execution.sql.concurrent.FastJDBCRecordSet.<init>(FastJDBCRecordSet.java:73)
at oracle.odi.runtime.agent.execution.sql.SQLDataProvider.readData(SQLDataProvider.java:97)
at oracle.odi.runtime.agent.execution.sql.SQLDataProvider.readData(SQLDataProvider.java:1)
at oracle.odi.runtime.agent.execution.DataMovementTaskExecutionHandler.handleTask(DataMovementTaskExecutionHandler.java:67)
at com.sunopsis.dwg.dbobj.SnpSessTaskSql.processTask(SnpSessTaskSql.java:2906)
at com.sunopsis.dwg.dbobj.SnpSessTaskSql.treatTask(SnpSessTaskSql.java:2609)
at com.sunopsis.dwg.dbobj.SnpSessStep.treatAttachedTasks(SnpSessStep.java:537)
at com.sunopsis.dwg.dbobj.SnpSessStep.treatSessStep(SnpSessStep.java:453)
at com.sunopsis.dwg.dbobj.SnpSession.treatSession(SnpSession.java:1740)
at oracle.odi.runtime.agent.processor.impl.StartSessRequestProcessor$2.doAction(StartSessRequestProcessor.java:338)
at oracle.odi.core.persistence.dwgobject.DwgObjectTemplate.execute(DwgObjectTemplate.java:214)
at oracle.odi.runtime.agent.processor.impl.StartSessRequestProcessor.doProcessStartSessTask(StartSessRequestProcessor.java:272)
at oracle.odi.runtime.agent.processor.impl.StartSessRequestProcessor.access$0(StartSessRequestProcessor.java:263)
at oracle.odi.runtime.agent.processor.impl.StartSessRequestProcessor$StartSessTask.doExecute(StartSessRequestProcessor.java:822)
at oracle.odi.runtime.agent.processor.task.AgentTask.execute(AgentTask.java:123)
at oracle.odi.runtime.agent.support.DefaultAgentTaskExecutor$2.run(DefaultAgentTaskExecutor.java:82)
at java.lang.Thread.run(Thread.java:662)
Please help me to resolve this issue.
Hi,
Try like this :
Command on source :
select ( '<%=odiRef.getPrevStepLog( "MESSAGE" )%>') ODI_VAR from dual
Command on target:
Insert into ERROR_LOG (TASK_NAME,ERROR_DESCRIPTION)
Values ('test',:ODI_VAR)
Use the above syntax as it is....it should work..........
Similar Messages
-
Hi,
I m getting error while running following query in procedure.Please help me to overcome the problem.
SELECT TRIM (FTP_TARGET_LOC) ftp_tgt_loc,
TRIM (FTP_SERVER) ftp_server_ip,
TRIM (FTP_USERID) ftp_userid,
TRIM (FTP_PASSWORD) ftp_passwd,
TRIM (FTP_SOURCE_DIRECTORY) ftp_src_dir,
TRIM (FTP_TARGET_DIRECTORY) ftp_tgt_dir,
TRIM (src_file_nm) src_file_nm,
TRIM (FTP_TYPE) ftp_type,
TRIM (FTP_DATA_FILE_NM) trgt_file_nm,
'#GLOBAL.g_FTP_FILE_DEL_IND' del_ind,
zip_ind zip_ind,
TRIM (UNIQUE_ARCH_ID_IND) arch_ind,
TRIM (ARCHIVE_DIRECTORY) arch_dir,
'#GLOBAL.g_ADM_ETL_XML_FILE_NM' del_fil
FROM ODIADM.FTP_PARAMETER
WHERE FTP_TARGET_LOC = '#GLOBAL.g_FTP_TGT_LOC'
Error message:
923 : 42000 : java.sql.SQLException: ORA-00923: FROM keyword not found where expected
java.sql.SQLException: ORA-00923: FROM keyword not found where expected
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:112)
at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:331)
at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:288)
at oracle.jdbc.driver.T4C8Oall.receive(T4C8Oall.java:745)
at oracle.jdbc.driver.T4CPreparedStatement.doOall8(T4CPreparedStatement.java:219)
at oracle.jdbc.driver.T4CPreparedStatement.executeForDescribe(T4CPreparedStatement.java:813)
at oracle.jdbc.driver.OracleStatement.executeMaybeDescribe(OracleStatement.java:1049)
at oracle.jdbc.driver.T4CPreparedStatement.executeMaybeDescribe(T4CPreparedStatement.java:854)
at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1154)
at oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:3370)
at oracle.jdbc.driver.OraclePreparedStatement.executeQuery(OraclePreparedStatement.java:3415)
at com.sunopsis.sql.SnpsQuery.executeQuery(SnpsQuery.java)
at com.sunopsis.dwg.dbobj.SnpSessTaskSql.execCollOrdersOSOder(SnpSessTaskSql.java)
at com.sunopsis.dwg.dbobj.SnpSessTaskSql.treatTaskTrt(SnpSessTaskSql.java)
at com.sunopsis.dwg.dbobj.SnpSessTaskSqlS.treatTaskTrt(SnpSessTaskSqlS.java)
at com.sunopsis.dwg.dbobj.SnpSessTaskSql.treatTask(SnpSessTaskSql.java)
at com.sunopsis.dwg.dbobj.SnpSessStep.treatSessStep(SnpSessStep.java)
at com.sunopsis.dwg.dbobj.SnpSession.treatSession(SnpSession.java)
at com.sunopsis.dwg.cmd.DwgCommandScenario.treatCommand(DwgCommandScenario.java)
at com.sunopsis.dwg.cmd.DwgCommandBase.execute(DwgCommandBase.java)
at com.sunopsis.dwg.cmd.e.k(e.java)
at com.sunopsis.dwg.cmd.g.G(g.java)
at com.sunopsis.dwg.dbobj.SnpScen.a(SnpScen.java)
at com.sunopsis.dwg.dbobj.SnpScen.localExecuteSync(SnpScen.java)
at com.sunopsis.dwg.tools.StartScen.actionExecute(StartScen.java)
at com.sunopsis.dwg.function.SnpsFunctionBaseRepositoryConnected.execute(SnpsFunctionBaseRepositoryConnected.java)
at com.sunopsis.dwg.dbobj.SnpSessTaskSql.execIntegratedFunction(SnpSessTaskSql.java)
at com.sunopsis.dwg.dbobj.SnpSessTaskSql.treatTaskTrt(SnpSessTaskSql.java)
at com.sunopsis.dwg.dbobj.SnpSessTaskSqlS.treatTaskTrt(SnpSessTaskSqlS.java)
at com.sunopsis.dwg.dbobj.SnpSessTaskSql.treatTask(SnpSessTaskSql.java)
at com.sunopsis.dwg.dbobj.SnpSessStep.treatSessStep(SnpSessStep.java)
at com.sunopsis.dwg.dbobj.SnpSession.treatSession(SnpSession.java)
at com.sunopsis.dwg.cmd.DwgCommandSession.treatCommand(DwgCommandSession.java)
at com.sunopsis.dwg.cmd.DwgCommandBase.execute(DwgCommandBase.java)
at com.sunopsis.dwg.cmd.e.k(e.java)
at com.sunopsis.dwg.cmd.h.A(h.java)
at com.sunopsis.dwg.cmd.e.run(e.java)
at java.lang.Thread.run(Thread.java:595)794771 wrote:
Hi,
I m getting error while running following query in procedure.Please help me to overcome the problem.
SELECT TRIM (FTP_TARGET_LOC) ftp_tgt_loc,
TRIM (FTP_SERVER) ftp_server_ip,
TRIM (FTP_USERID) ftp_userid,
TRIM (FTP_PASSWORD) ftp_passwd,
TRIM (FTP_SOURCE_DIRECTORY) ftp_src_dir,
TRIM (FTP_TARGET_DIRECTORY) ftp_tgt_dir,
TRIM (src_file_nm) src_file_nm,
TRIM (FTP_TYPE) ftp_type,
TRIM (FTP_DATA_FILE_NM) trgt_file_nm,
'#GLOBAL.g_FTP_FILE_DEL_IND' del_ind,
zip_ind zip_ind,
TRIM (UNIQUE_ARCH_ID_IND) arch_ind,
TRIM (ARCHIVE_DIRECTORY) arch_dir,
'#GLOBAL.g_ADM_ETL_XML_FILE_NM' del_fil
FROM ODIADM.FTP_PARAMETER
WHERE FTP_TARGET_LOC = '#GLOBAL.g_FTP_TGT_LOC'
Error message:
923 : 42000 : java.sql.SQLException: ORA-00923: FROM keyword not found where expected
java.sql.SQLException: ORA-00923: FROM keyword not found where expected
Make sure all of your Global variable is getting proper value before those are used inside your procedure -
Need help on Error Logging in ODI
Hi All,
We have the following requirement to be achieve on the ODI 11g:
Error Logging: After execution of every package or interface we are supposed to write the data from the E$ error table to a common log table. We need to identify a mechanism to get the E$ tables of each package and read the data from the same table and finally write into a common log table. Please help us out to implement this requirement.
Note: We can have multiple interfaces in a package and each interfaces error log table should be tracked.
Any help on this will be appreciated.
Thanks,
Pavan Sharma KYou can try using the full offline Reader installer from
http://get.adobe.com/reader/enterprise/ -
ERROR-Logging of Stored Procedure (Stop / Going on after error + logging)
Hi @all,
I am using a Stored Procedure which is very simple:
=>The stored procedure is selecting many tousands of records from table1 + table2.
=> Some values (records) will be summarized (aggregated/group by).
=>After this selection and summarizing, this records will be deleted from table3 (if they exist in table3).
=>Then the selected records will be inserted in table3.
Now I want to do the following:
Is there a way to log the errors of the stored procedure?
For example, the stored procedure is copying many thousands of records.
If there is a problem on copying/ inserting a record to table3, then I want a error-log in a loggin_table.
Is there a way to write the error-logs from a stored procedure to a special table in database?
I want to do this in 2 ways:
1) On error the error is logged and the stored procedure is stopped.
2) On error the error is logged and the stored procedure is going on to insert/summarize the next record.
I don't know how I can get these errors of a stored procedure. Maybe it isn't possible? Or is it better to use a function?
Hope anyone can give me a hint?
Thanks a lot.
Best regards,
TimHi
option one:
as i know you can have another table without primer key (log table).
then before you insert into table, select the record count using primary key. if it is duplicate then put those record into the table.
option two:
write the log into file.
declare
f utl_file.file_type;
s varchar2(200);
begin
f := utl_file.fopen('SAMPLEDATA','sample1.txt','R');
loop
utl_file.get_line(f,s);
dbms_output.put_line(s);
end loop;
exception
when NO_DATA_FOUND then
utl_file.fclose(f);
end;
refer : http://www.psoug.org/reference/OLD/utl_file.html
regards
upul.
Edited by: Upul Indika on Apr 9, 2009 12:45 PM -
Hi folks,
Which table is stored in the error log ODI?
Tks!If your question is - Which tables in ODI stores the logs then the answer is:
SNP_SESS_TASK_LOG
SNP_STEP_LOG
All the log information is stored inside these tables and the STATUS tells what was the status of the task or the step. -
hi
how to capture an odi error log file for an odi package?
Kindly suggest me in this.ODI execution log is stored in the repository, so you could query it to retrieve the needed information. Also you could use substitution api getPrevStepLog() to retrieve error log (code & message) for the certain step. And for OdiOSCommand you could capture error log in the specified Error file.
-
hi i m new to ODI,
I want to know whether there is some funtionality by which whatever error comes in ODI during any funcationality, that error log can be maintained in some external file automatically.Hi Guru,
i explain all the steps whatever i did in creating interface and package
first,i explain interface
1. create project named ODIexp_FF_RT then
1.1 create interface named INTexp_FF_RT then
1.2 imported knowledge modules
LKM(LKM file to sql),CKM(CKm sql),IKM(IKM SQl incremental update row by row)
1.3 then i perform diagram,flow,control option
1.4 click on apply button and then execute it
now explain package
2. create package named ODI_pack.then i go to toolbox and choose OdioutFile option in Files tab and also mention following parameters like
step name :OdiOutFile1
parameter values
target file c:/temp/ikm_rowbyrow.log
append true
char set ISO8859_1
text OdiOutFile "-FILE=C:\temp\ikm_rowbyrow.log" -APPEND "-CHARSET_ENCODING=ISO8859_1"
Previous step '<%=odiRef.getPrevStepLog("STEP_NAME")%>' executed in
'<%=odiRef.getPrevStepLog("DURATION")%>' seconds
finally i click on apply button and execute it.
All above steps r done by me for executing interface and packages independently ..
so plz help me in correcting any steps that i hav done for getting log files containing error info.,if it comes in during the execution of interfaces.
thanxs
Ankush -
Hi Experts,
I have created following procedure and triyng to get column value by using rownum. When I run the scenario, I am getting following exception at ODI Procedure step. Can any one please help me on it
I have created loop package to fetch column value until loop end.
Please let me know if you are not clear my query
ODI Procedure:
begin
select a.eno into '#EMPNO' from (select rownum r,e.* from trg_emp_01 e) a where a.r=#Counter;
end;
#EMPNO variable created as alphanumeric datatype and
#Counter variable created as alphanumic datatype and it is assign with '1' value
Exception:
6550 : 65000 : java.sql.SQLException: ORA-06550: line 1, column 25:
PLS-00220: simple name required in this context
ORA-06550: line 1, column 28:
PL/SQL: ORA-00904: : invalid identifier
ORA-06550: line 1, column 7:
PL/SQL: SQL Statement ignored
java.sql.SQLException: ORA-06550: line 1, column 25:
PLS-00220: simple name required in this context
ORA-06550: line 1, column 28:
PL/SQL: ORA-00904: : invalid identifier
ORA-06550: line 1, column 7:
PL/SQL: SQL Statement ignored
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:125)
at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:316)
at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:282)
at oracle.jdbc.driver.T4C8Oall.receive(T4C8Oall.java:639)
at oracle.jdbc.driver.T4CPreparedStatement.doOall8(T4CPreparedStatement.java:185)
at oracle.jdbc.driver.T4CPreparedStatement.execute_for_rows(T4CPreparedStatement.java:633)
at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1086)
at oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:2984)
at oracle.jdbc.driver.OraclePreparedStatement.executeUpdate(OraclePreparedStatement.java:3057)
at com.sunopsis.sql.SnpsQuery.executeUpdate(SnpsQuery.java)
at com.sunopsis.dwg.dbobj.SnpSessTaskSql.execSrcOrders(SnpSessTaskSql.java)
at com.sunopsis.dwg.dbobj.SnpSessTaskSql.treatTaskTrt(SnpSessTaskSql.java)
at com.sunopsis.dwg.dbobj.SnpSessTaskSqlS.treatTaskTrt(SnpSessTaskSqlS.java)
at com.sunopsis.dwg.dbobj.SnpSessTaskSql.treatTask(SnpSessTaskSql.java)
at com.sunopsis.dwg.dbobj.SnpSessStep.treatSessStep(SnpSessStep.java)
at com.sunopsis.dwg.dbobj.SnpSession.treatSession(SnpSession.java)
at com.sunopsis.dwg.cmd.DwgCommandScenario.treatCommand(DwgCommandScenario.java)
at com.sunopsis.dwg.cmd.DwgCommandBase.execute(DwgCommandBase.java)
at com.sunopsis.dwg.cmd.e.i(e.java)
at com.sunopsis.dwg.cmd.g.y(g.java)
at com.sunopsis.dwg.cmd.e.run(e.java)
at java.lang.Thread.run(Thread.java:595)
ODI Procedure:
begin
select a.eno into #EMPNO from (select rownum r,e.* from trg_emp_01 e) a where a.r=#Counter;
end;
Exception:
6550 : 65000 : java.sql.SQLException: ORA-06550: line 1, column 26:
PL/SQL: ORA-00936: missing expression
ORA-06550: line 1, column 7:
PL/SQL: SQL Statement ignored
java.sql.SQLException: ORA-06550: line 1, column 26:
PL/SQL: ORA-00936: missing expression
ORA-06550: line 1, column 7:
PL/SQL: SQL Statement ignored
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:125)
at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:316)
at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:282)
at oracle.jdbc.driver.T4C8Oall.receive(T4C8Oall.java:639)
at oracle.jdbc.driver.T4CPreparedStatement.doOall8(T4CPreparedStatement.java:185)
at oracle.jdbc.driver.T4CPreparedStatement.execute_for_rows(T4CPreparedStatement.java:633)
at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1086)
at oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:2984)
at oracle.jdbc.driver.OraclePreparedStatement.executeUpdate(OraclePreparedStatement.java:3057)
at com.sunopsis.sql.SnpsQuery.executeUpdate(SnpsQuery.java)
at com.sunopsis.dwg.dbobj.SnpSessTaskSql.execSrcOrders(SnpSessTaskSql.java)
at com.sunopsis.dwg.dbobj.SnpSessTaskSql.treatTaskTrt(SnpSessTaskSql.java)
at com.sunopsis.dwg.dbobj.SnpSessTaskSqlS.treatTaskTrt(SnpSessTaskSqlS.java)
at com.sunopsis.dwg.dbobj.SnpSessTaskSql.treatTask(SnpSessTaskSql.java)
at com.sunopsis.dwg.dbobj.SnpSessStep.treatSessStep(SnpSessStep.java)
at com.sunopsis.dwg.dbobj.SnpSession.treatSession(SnpSession.java)
at com.sunopsis.dwg.cmd.DwgCommandScenario.treatCommand(DwgCommandScenario.java)
at com.sunopsis.dwg.cmd.DwgCommandBase.execute(DwgCommandBase.java)
at com.sunopsis.dwg.cmd.e.i(e.java)
at com.sunopsis.dwg.cmd.g.y(g.java)
at com.sunopsis.dwg.cmd.e.run(e.java)
at java.lang.Thread.run(Thread.java:595)
Thanks
Phani
Edited by: Phanikanth on Jul 9, 2010 1:25 AM
Edited by: Phanikanth on Jul 9, 2010 2:08 AMGood point - In my case, these are single executable statements. These have been saved in ODI and executed successfully. Just no using my machine.
EXAMPLE 1------------
DECLARE
RetVal ;
I_STRING VARCHAR2(200);
BEGIN
I_STRING := '';
RetVal := XXX.PKG_XXX.SF_COMMA_TO_TABLE ( I_STRING );
COMMIT;
END;
EXAMPLE 2------------
SELECT C.COL1, B.COL2, B.COL3,TO_CHAR(B.EFFDT,'YYYY-MM-DD') COL4,B.COL5,B.COL6
FROM TABLE1 A, TABLE2 B, TABLE3 C
WHERE
and A.ID = 'XXX'
and a.setcntrlvalue = ' '
AND A.NAME = 'XXX'
AND A.EFFDT =
(SELECT MAX(A_ED.EFFDT) FROM TABLE1 A_ED
WHERE A.SETID = A_ED.SETID
AND A_ED.EFFDT <= SYSDATE)
AND B.EFFDT =
(SELECT MAX(B_ED.EFFDT) FROM TABLE2 B_ED
WHERE B.SETID = B_ED.SETID
AND B.ACCOUNT = B_ED.ACCOUNT
AND B_ED.EFFDT <= SYSDATE)
AND A.SETID = B.SETID
AND A.RANGE_FROM = A.RANGE_TO
AND B.ACCOUNT = A.RANGE_FROM
AND A.SETID = C.SETID
AND A.TREE_NAME = C.TREE_NAME
AND A.TREE_NODE_NUM = C.TREE_NODE_NUM
AND C.EFFDT =
(SELECT MAX(C_ED.EFFDT) FROM TABLE3 C_ED
WHERE C.SETID = C_ED.SETID
AND C_ED.EFFDT <= A.EFFDT)
------------------ -
Error while execution ODI procedure : java.lang.NullPointerException
Hi,
I`m trying to execute a simple ODI procedure and I`m getting the following exception:
java.lang.NullPointerException
at com.sunopsis.dwg.dbobj.SnpSessTaskSql.execCollOrders(SnpSessTaskSql.java)
at com.sunopsis.dwg.dbobj.SnpSessTaskSql.treatTaskTrt(SnpSessTaskSql.java)
at com.sunopsis.dwg.dbobj.SnpSessTaskSqlS.treatTaskTrt(SnpSessTaskSqlS.java)
at com.sunopsis.dwg.dbobj.SnpSessTaskSql.treatTask(SnpSessTaskSql.java)
at com.sunopsis.dwg.dbobj.SnpSessStep.treatSessStep(SnpSessStep.java)
at com.sunopsis.dwg.dbobj.SnpSession.treatSession(SnpSession.java)
at com.sunopsis.dwg.cmd.DwgCommandScenario.treatCommand(DwgCommandScenario.java)
at com.sunopsis.dwg.cmd.DwgCommandBase.execute(DwgCommandBase.java)
at com.sunopsis.dwg.cmd.e.j(e.java)
at com.sunopsis.dwg.cmd.g.F(g.java)
at com.sunopsis.dwg.dbobj.SnpScen.a(SnpScen.java)
at com.sunopsis.dwg.dbobj.SnpScen.localExecuteSync(SnpScen.java)
at com.sunopsis.dwg.tools.StartScen.actionExecute(StartScen.java)
at com.sunopsis.dwg.function.SnpsFunctionBaseRepositoryConnected.execute(SnpsFunctionBaseRepositoryConnected.java)
at com.sunopsis.dwg.dbobj.SnpSessTaskSql.execIntegratedFunction(SnpSessTaskSql.java)
at com.sunopsis.dwg.dbobj.SnpSessTaskSql.treatTaskTrt(SnpSessTaskSql.java)
at com.sunopsis.dwg.dbobj.SnpSessTaskSqlS.treatTaskTrt(SnpSessTaskSqlS.java)
at com.sunopsis.dwg.dbobj.SnpSessTaskSql.treatTask(SnpSessTaskSql.java)
at com.sunopsis.dwg.dbobj.SnpSessStep.treatSessStep(SnpSessStep.java)
at com.sunopsis.dwg.dbobj.SnpSession.treatSession(SnpSession.java)
at com.sunopsis.dwg.cmd.DwgCommandScenario.treatCommand(DwgCommandScenario.java)
at com.sunopsis.dwg.cmd.DwgCommandBase.execute(DwgCommandBase.java)
at com.sunopsis.dwg.cmd.e.j(e.java)
at com.sunopsis.dwg.cmd.g.z(g.java)
at com.sunopsis.dwg.cmd.e.run(e.java)
at java.lang.Thread.run(Thread.java:595)
The source of the procedure:
select
P_ID,
P_NAME,
to_char(START_TIME_KEY,'DD-MON-YYYY HH24:MI:SS') as START_TIME_KEY,
to_char(END_TIME_KEY,'DD-MON-YYYY HH24:MI:SS') as END_TIME_KEY,
P_IS_ACTIVE,
from persons
The target of the procedure:
DECLARE
v_START_TIME_KEY DATE;
v_END_TIME_KEY DATE;
v_NAME VARCHAR2(200);
v_ID NUMBER;
BEGIN
v_NAME := '#P_NAME';
commit;
END;
ODI version: 10.1.3.5.5
Source and target technology: Oracle Database 11g Enterprise Edition Release 11.1.0.6.0 - 64bit Production
Thanks!Hello,
Is your aim to get the Name from the table into the variable. ?
And if there is only one row from the table you can use refresh variable to get the name:
if there are more rows and you want to do somehthing repeatedly using the name, then you need to use the method you have described.
Declare the variable in the pakcage and give some default value to the variable then call the procedure.
Regards
Reshma -
How to execute unix command from ODI Procedure
Hi,
I am trying to execute below unix command from ODI Procedure (Command on Target tab) but I am getting the error "java.io.IOException: Cannot run program "cd": error=2, No such file or directory" but when I try to execute the same command using OdiOSCommand, it is executing successfully. I don't want to use shell script to execute this command. Is there any specific syntax am I missing to execute this command from ODI procedure?
cd /project3/tmt/;ls *.dmp > dmplist.lst
Please help me on this...
Thanks
MTHi nahlikh,
Thank you for the reply.
I used below command in Procedure but still getting the same error as "java.io.IOException: Cannot run program "OdiOSCommand": error=2, No such file or directory".
OdiOSCommand "-COMMAND=cd /project3/tmt/;ls *.dmp > dmplist.lst"
as I mentioned earlier if I use the command cd /project3/tmt/;ls *.dmp > dmplist.lst in OdiOSCommand tool it is executing successfully without any issues.
any thoughts appreciated to get a solution for this issue.
Thanks
MT -
FRF-00025 Unable to call function. Error message: Syntax error in program
hi,
when we try to import the export file,we are getting the following error in the 24th phase
i.e., check DDIC Password.
The Error is
INFO 2007-10-29 15:53:20 [iaxxrfcimp.cpp:1017]
CAbRfcImpl::callLibraryFunction
Generating interface for remote function.
TRACE [iaxxrfcimp.cpp:1056]
CAbRfcImpl::performFunctionCall
Calling function module: INST_RFC_GET_INTERFACE
WARNING[E] 2007-10-29 15:53:21 [iaxxrfcimp.cpp:1089]
CAbRfcImpl::performFunctionCall
FRF-00025 Unable to call function. Error message: Syntax error in program SAPLSUNI . .
TRACE [iaxxrfcimp.cpp:1090]
CAbRfcImpl::performFunctionCall
RFC failure or system exception raised
TRACE [iaxxrfcimp.cpp:1091]
CAbRfcImpl::performFunctionCall
Syntax error in program SAPLSUNI .
TRACE [iaxxbjsmod.cpp:657]
CJSlibModule::showOkCancelBox_impl()
<html>Test logon to SAP System I50 failed.<p>Make sure that the system is started, that the user DDIC exists and that the password of user DDIC is correct.</html>
TRACE [iaxxgenimp.cpp:1093]
showDialog()
waiting for an answer from gui
What Could be the solution for this.
waiting for ur reply
SSHi Friend,
Please check whether or not there is view missing error recorded in dev_w0 trace file.
if there is , you can try to follow this procedure in order to manually
import the missing view definitions.
All steps must be carried out with the <sid>adm user of the target
system and from the install-directory:
1. In the install-directory
<sapinst_instdir>\...COPY\IMPORTT\SYSTEM\ABAP\ORA\UC\DB
create a file SAPVIEW.cmd with the following content:
tsk: "<sapinst_instdir>\...\COPY\IMPORT\SYSTEM\ABAP\ORA\UC\DB\SAPVIEW.TSK"
icf: "
<YOUR_EXPORT_DIRECTORY>\export\DATA\SAPVIEW.STR"
dcf: "<sapinst_instdir>\...\COPY\IMPORT\SYSTEM\ABAP\ORA\UC\DB\DDLORA.TPL"
dat: null
dir: null
ext: null
Please make sure that all paths are written correctly (in one line) and
the refered files are existant and readable. One exception:
The SAPVIEW.TSK file is created with step 2.:
2. Run from the command-line:
R3load -ctf I
<YOUR_EXPORT_DIRECTORY>\export\DATA\SAPVIEW.STR <sapinst_instdir>\...\COPY\IMPORT\SYSTEM\ABAP\ORA\UC\DB\DDLORA.TPL SAPVIEW.TSK ORA -l SAPVIEW.log
If there's a problem reading the 'SAPVIEW.STR' file, copy the
file to the install directory and adapt the path accordingly.
3. Run the view import by:
R3load.exe -i SAPVIEW.cmd -dbcodepage <YOUR_CODE_PAGE> -l SAPVIEW.log
-stop_on_error
4. Check both the SAPVIEW.log and the SAPVIEW.TSK file whether all views
have been created successfully.
If 4. is okay, restart the central instance and check whether you are
able to log on now. If yes, continue 'sapinst' by the option 'retry' or
'continue old installation'.
I Hope It can be helpful.
With Best Regards
Julia -
Odi os call with option parameter from odi procedure
Hi.
I am calling a shell script from ODI as below inside an ODI procedure P1. The os command below is in 'Command on Target' side.I have defined v_in_param as an 'option' inside procedure P1
OdiOSCommand sample.sh v_in_param
i am getting error as 'OS command returned 1'.
Is it the right syntax to pass an 'option' parameter to an OS call?
thanksyou can try OdiOSCommand sh sample.sh <%=odiRef.getOption("v_in_param")%> or even call OS Command in ODI Package and paste the above code.
-
How to assign a value to ODI Variable using ODI Procedure
Hi ,
Is it possible to assign a value to a ODI Variable using ODI Procedure ?
If it is possible how we can do that.
BEGIN
IF #Counter=1
Then
#Next_Increment:=#Counter+1;
End if;
END;
In my example I have 2 ODI Variables #counter and #Next_increment.
I am trying to assign VALUE TO A ODI VARIABLE #next_increment from another ODI Variable #counter.
thanks
prasannaPrasanna,
I have a similar requirement where I need to assign values to ODI variables within a procedure. How do we make use of an ODI package to accomplish this ?
Actually, I have a sequence of ODI steps, and there is a call to a procedure 'LOG ERROR' from every step which gets called in case error occurs in any step. I just need to identify from which step the error came.
Please help. -
How can I display error log of a standard program in my custom program?
Hello Experts,
I have a requirement where I submit a standard program from my custom module pool program as a background job. I use the TO SAP-SPOOL and thus the log is available when I go to SM37 and check the spool list. I have a requirement that I display this log in a tab within my module pool after the completion of the program. I am unable to fins a proper solution to this. I have both the spool number & the log number but I am unable to find function modules which will help me print them within my program. I found many ways to display it but as full screen and not with in my program.
Could someone please help me with this.
Thank YouHi,
FM to read a spool request is "RSPO_RETURN_ABAP_SPOOLJOB".
If the error log is displayed as a list output in the standard program, you can also use the syntax SUBMIT Program... and RETURN with export to memory addition.
Then you will be able to read the list output from memory.
Regards,
Munesh. -
Error log in Process chains...
hai friends,
am getting this error log messages while running the process chains...
There is a discrepancy between the confirmation and deletion of qRFC-LUWs
Message no. RSQU016
Diagnosis
When data was confirmed and deleted in the qRFC queue, the system found a discrepancy between the number of newly confirmed LUWs ( 2282) and the number of LUWs to be deleted ( 3424).
Where more LUWs are to be deleted than were previously confirmed, a previous delete attempt was terminated.
The LUWs were confirmed but not completely deleted from the qRFC and tRFC tables. The confirmation already ensures that the data is not transferred into the BW again with a subsequent request.
Delta extraction was continued.
Procedure
You do not need to do anything urgently.
If the message also arises during all subsequent delta requests, contact SAP Support with the message number at hand. In this case, there is a danger that the qRFC and tRFC tables run at full capacity, which may also affect other applications.
please help me friendds...Refer to the OSS note: 583086
Also you can refer to the smililar kind of discussion in this link:
Discrepancy between the confirmation and deletion of qRFC-LUWs
Hope this helps..
Maybe you are looking for
-
How to update from Windows 8.1 Eval to Full version ?
Hi All, I have a issue. I had installed the Windows 8.1 Eval 90 days edition. I need to update this to Full version by entering the product key. But how ever it is not accepting it. Is there any other way of updating from Windows 8.1 Eval to full wit
-
Tool Recording over video in Photoshop CS6?
Is it possible to record a paintbrushes movments while playing live video? I was planning on animating some sections frame by frame but it would be much better (and easier for me) if I could simply record the paint brushes action while the video was
-
Migration with rman on same platform
Hello Gurus I need to migrate my database of 200gb from one server to another in aix having same platform and same version of database oracle 10g. Just need to shift it from one server to another. I need an rman document to do the same. If anybody ha
-
Where is the Preferences folder in Lion?
It seem as though the Preferences folder has moved in Lion OS X v10.7. Anyone know where I can find it?
-
CS4, mamp v213 getting a blank page
Hi, I'm new to dynamic stuff, but I appear to have set everything up okay - I can see tables and records in DW properties panels and all tests are good. However, when I apply a filter to the recordset, (filter by postcode) and using a form (in a sepe