Executing String which has SELECT statement
String stmt:='Select * from Table a';
How do I execute the select statement present in the string.
Thanks for the help in advance
In most cases this is something you should not be doing on a regular basis. Also when using dynamic sql, take care to use bind variables.
SQL> create or replace function f (p_stmt varchar2)
2 return sys_refcursor as
3 c sys_refcursor;
4 begin
5 open c for p_stmt;
6 return c;
7 end;
8 /
Function created.
SQL> var c refcursor
SQL> exec :c := f('select * from emp')
PL/SQL procedure successfully completed.
SQL> print c
EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO
7369 SMITH CLERK 7902 17-DEC-80 800 20
7499 ALLEN SALESMAN 7698 20-FEB-81 1600 300 30
7521 WARD SALESMAN 7698 22-FEB-81 1250 500 30
7566 JONES MANAGER 7839 02-APR-81 2975 20
7654 MARTIN SALESMAN 7698 28-SEP-81 1250 1400 30
7698 BLAKE MANAGER 7839 01-MAY-81 2850 30
7782 CLARK MANAGER 7839 09-JUN-81 2450 10
7788 SCOTT ANALYST 7566 09-DEC-82 3000 20
7839 KING PRESIDENT 17-NOV-81 5000 10
7844 TURNER SALESMAN 7698 08-SEP-81 1500 0 30
7876 ADAMS CLERK 7788 12-JAN-83 1100 20
7900 JAMES CLERK 7698 03-DEC-81 950 30
7902 FORD ANALYST 7566 03-DEC-81 3000 20
7934 MILLER CLERK 7782 23-JAN-82 1300 10
14 rows selected.
SQL>Given the example in the question, execute immediate wouldn't work, unless the table only had one row or bulk collect was used.
Similar Messages
-
Passing String Which Has Single Quote Row/Value to a Function Returns Double Quoate
Hi, I'm getting weird thing in resultset. When I pass String which has single quote value in it to a split function , it returns rows with double quote.
For example following string:
'N gage, Wash 'n Curl,Murray's, Don't-B-Bald
Returns:
''N gage, Wash ''n Curl,Murray''s, Don''t-B-Bald
Here is the split function:
CREATE Function [dbo].[fnSplit] (
@List varchar(8000),
@Delimiter char(1)
Returns @Temp1 Table (
ItemId int Identity(1, 1) NOT NULL PRIMARY KEY ,
Item varchar(8000) NULL
As
Begin
Declare @item varchar(4000),
@iPos int
Set @Delimiter = ISNULL(@Delimiter, ';' )
Set @List = RTrim(LTrim(@List))
-- check for final delimiter
If Right( @List, 1 ) <> @Delimiter -- append final delimiter
Select @List = @List + @Delimiter -- get position of first element
Select @iPos = Charindex( @Delimiter, @List, 1 )
While @iPos > 0
Begin
-- get item
Select @item = LTrim( RTrim( Substring( @List, 1, @iPos -1 ) ) )
If @@ERROR <> 0 Break -- remove item form list
Select @List = Substring( @List, @iPos + 1, Len(@List) - @iPos + 1 )
If @@ERROR <> 0 Break -- insert item
Insert @Temp1 Values( @item ) If @@ERROR <> 0 Break
-- get position pf next item
Select @iPos = Charindex( @Delimiter, @List, 1 )
If @@ERROR <> 0 Break
End
Return
End
FYI: I'm getting @List value from a table and passing it as a string to split function.
Any help would be appreciated!
ZKfixed the issue by using Replace function like
Replace(value,'''''','''')
Big Thanks Patrick Hurst!!!!! :)
Though I came to another issue which I posted here:
https://social.msdn.microsoft.com/Forums/sqlserver/en-US/a26469cc-f7f7-4fb1-ac1b-b3e9769c6f3c/split-function-unable-to-parse-string-correctly?forum=transactsql
ZK -
String compare in select statement
Hi All,
i have a problem in select statement. i have a name field in my selection screen, i am using name field to comapre string in my select statement, but i am not getting the resule can anyone suggest me on this . please find my code below,s_name1 is my select option name.
IF s_name1-low IS NOT INITIAL.
LOOP AT S_NAME1.
CONCATENATE s_name1-low '%' INTO s_name1-low.
TRANSLATE s_name1-low TO UPPER CASE.
s_name1-option = 'CP'.
MODIFY s_name1.
ENDLOOP.
ENDIF.
SELECT lifnr land1 name1 ort01 ort02 pfach pstl2 pstlz regio stras
erdat ernam ktokk loevm sperr sperm sperz nodel
INTO (gs_vendor-vendor_num, gs_vendor-land1, gs_vendor-name,
gs_vendor-ort01, gs_vendor-ort02, gs_vendor-pfach,
gs_vendor-pstl2, gs_vendor-pstlz, gs_vendor-regio,
gs_vendor-stras, gs_vendor-created_on, gs_vendor-created_by,
gs_vendor-account_gp, gs_vendor-deletion_flag,
gs_vendor-central_post, gs_vendor-ctr_purch_block,
gs_vendor-payment_block, gs_vendor-central_deletion)
FROM lfa1
WHERE lifnr IN s_lifnr
AND name1 LIKE s_name1
Start of Change G9007789 03/12/2008 - D01K946651
Additional selection criteria added for City and Region
AND ort01 IN s_ort01
AND regio IN s_regio
End of Change G9007789 03/12/2008 - D01K946651
AND ktokk IN s_ktokk
AND ( ktokk NE 'ZHMT' AND ktokk NE 'ZTER' ).
APPEND gs_vendor TO gt_vendor.
CLEAR gs_vendor.
ENDSELECT.Hi,
Have you checked whether you have given proper events.
Check this code below.
AT selection screen output. "Change here
IF s_name1-low IS NOT INITIAL.
LOOP AT S_NAME1.
CONCATENATE s_name1-low '%' INTO s_name1-low.
TRANSLATE s_name1-low TO UPPER CASE.
s_name1-option = 'CP'.
MODIFY s_name1.
ENDLOOP.
ENDIF.
Start-of-Selection. " change here
SELECT lifnr land1 name1 ort01 ort02 pfach pstl2 pstlz regio stras
erdat ernam ktokk loevm sperr sperm sperz nodel
INTO (gs_vendor-vendor_num, gs_vendor-land1, gs_vendor-name,
gs_vendor-ort01, gs_vendor-ort02, gs_vendor-pfach,
gs_vendor-pstl2, gs_vendor-pstlz, gs_vendor-regio,
gs_vendor-stras, gs_vendor-created_on, gs_vendor-created_by,
gs_vendor-account_gp, gs_vendor-deletion_flag,
gs_vendor-central_post, gs_vendor-ctr_purch_block,
gs_vendor-payment_block, gs_vendor-central_deletion)
FROM lfa1
WHERE lifnr IN s_lifnr
AND name1 LIKE s_name1
Start of Change G9007789 03/12/2008 - D01K946651
Additional selection criteria added for City and Region
AND ort01 IN s_ort01
AND regio IN s_regio
End of Change G9007789 03/12/2008 - D01K946651
AND ktokk IN s_ktokk
AND ( ktokk NE 'ZHMT' AND ktokk NE 'ZTER' ).
APPEND gs_vendor TO gt_vendor.
CLEAR gs_vendor.
ENDSELECT.
Reward if helpful.
Regards. -
How to coerce data types to strings in a SELECT statement?
ABAPers,
I need to coerce column outputs to strings in a SELECT statement. Here is a pseudo example:
select ConvertToString(count(*)) from MARA
On help.sap.com, I could not find enough information on the functions that are supported within SELECT statement. I would appreciate it if someone can enlighten me on how to achive this.
Note that my real problem is that I do not know the return type of the specified columns. The columns are passed as a user-specified parameter. As I do not know the column types, I am mandating that customers specify columns that return only string type data.
Thank you in advance for your help.
PradeepHi Pradeep,
Convert to string wont be possible in the SELECT statement.
What you can do is use Field Symbols. This allows to assign data types dynamically.
Field-Symbols
Best regards,
Prashant
Pls. mark points for helpful answers -
Execute the expression in select statement
CREATE TABLE TEST1
OFFICE_PRODUCTS NUMBER,
OFFICE_ELECTRONICS NUMBER
Insert into TEST1 (OFFICE_PRODUCTS, OFFICE_ELECTRONICS) Values(1, 0);
COMMIT;
CREATE TABLE TEST2
EXPORT_FIELD_NAME VARCHAR2(100 BYTE),
EXPORT_COLUMN_EXPRESSION VARCHAR2(100 BYTE)
Insert into TEST2
(EXPORT_FIELD_NAME, EXPORT_COLUMN_EXPRESSION)
Values ('A1', 'least(OFFICE_PRODUCTS, OFFICE_ELECTRONICS)');
COMMIT; I want to be execute the expression should run in select statement how to do?
and tried as like below,it's not working.
select (select EXPORT_COLUMN_EXPRESSION from test2 where EXPORT_FIELD_NAME='A1') FROM TEST1;968892 wrote:
CREATE TABLE TEST1
OFFICE_PRODUCTS NUMBER,
OFFICE_ELECTRONICS NUMBER
Insert into TEST1 (OFFICE_PRODUCTS, OFFICE_ELECTRONICS) Values(1, 0);
COMMIT;
CREATE TABLE TEST2
EXPORT_FIELD_NAME VARCHAR2(100 BYTE),
EXPORT_COLUMN_EXPRESSION VARCHAR2(100 BYTE)
Insert into TEST2
(EXPORT_FIELD_NAME, EXPORT_COLUMN_EXPRESSION)
Values ('A1', 'least(OFFICE_PRODUCTS, OFFICE_ELECTRONICS)');
COMMIT; I want to be execute the expression should run in select statement how to do?
and tried as like below,it's not working.
select (select EXPORT_COLUMN_EXPRESSION from test2 where EXPORT_FIELD_NAME='A1') FROM TEST1;
Your problems are many...
a) it's very poor design to be storing expressions or sql statements or any 'executable' style code as data in the database.
b) what you're storing is a string of characters. Oracle isn't going to miraculously know that that is some expression that has to be evaluated, so why should it decide to treat it as such?
c) this poor design can lead to security issues especially around SQL injection.
d) to actually perform what you want would require you to build a dynamic SQL statement and then execute that using EXECUTE IMMEDIATE or DBMS_SQL (or for a 3rd party client, a Ref Cursor), but then there are numerous issues around doing dynamic SQL, aside from SQL injection, in that you are producing code that is not validated at compile time and can thus lead to bugs showing only at run-time and sometime only under certain conditions; the code is harder to maintain; the code can potentially be avoiding the use of bind variables, impacting on resources and performance on the database; the final query can be difficult to know just from reading the code, making further development or debugging a pain in the posterior. Essentially, dynamic SQL is considered very poor design and is 99.9% of the time used for the wrong reasons.
So, why are you trying to do this? What is the business requirement you are trying to solve? -
Report based on a ITEM (which has SQL statement)
Hi everyone,
I have a created a form based on a table which has 1 column that stores SQL statement in the database.And i am displaying the SQL statement in TEXT AREA FILED.
What i want to do is to create a report based on that SQL statement (Which is in the TEXT AREA field on the same page).I tried to create a report region with
:P25_SQL_STATEMENT.But i am getting an error
----->invalid query, no select statement found.
How can i do a report based on the item which has SQL query in it.
Thanks
phani
.Hi Jkallman,
Thanks for the reply.I have a (FORM WITH REPORT) on a table which has column of SQL_STMNT VARCHAR2(2000 BYTE) which takes the SQL statement entered from the FORM.
1.I have a report which shows all the records in the above mention table on page 10
2.If i hit the edit button in the report i go to page 11 which i have the FORM on the above mentioned table.In that form i have a field :P11_SQL_STMNT.
3.I am trying to create a report on the same page 11 based on the SQL query of that :P11_SQL_STMNT.
4.I did the follwoing steps
--> create a region
----> report
---->sql report
and entered the following code.
begin
return (:P11_SQL_STMNT);
end;
but it is giving me the error which i mentioned in the previous post.If u need any more details i can provide
Thanks in advance
phani -
How to display string which has BSP elements correctly?
Hi,
I have a string variable lv_text which content is:
<htmlb:group height = "100%"
width = "100%" >
<htmlb:groupHeader>
<xhtmlb:toolbar id="toolbar1" >
<xhtmlb:toolbarItem placement="LEFT" >
<htmlb:textView design = "HEADER3"
text = "AAAA"/>
</xhtmlb:toolbarItem>
</xhtmlb:toolbar>
</htmlb:groupHeader>
<htmlb:groupBody>
<%
if gv_if_dis_message = 'X'.
%>
<%@include file="message.htm" %>
<%
Endif.
%>
</htmlb:groupBody>
</htmlb:group>
I want to use it in my BSP page and display the content correctly. Because it has some BSP elements, so now it can not be displayed correctly. How to solve this problem?
Thanks a lot!you cannot do this way. what you can do is call the factory method of the htmlb:<tab> to get the element and render the element to a string and you can now use this string in your bsp page.
Regards
Raja -
Executing a column which has a sql query in a tabular form
Hi,
I have a tabular form which contains a column named as SQL which has sql statements in it. Without going to the SQL workshop in Apex i want to execute that query in the tabular form itself. For that i've created a page item which fetches the particular rows sql query and created a button 'EXECUTE'. When i click the execute button it should run the query and should display whether the query is correct or not and should show the error message.
Can any one provide solution for this or whether there are any other ways to achive this scenario.
With Regards
Balaji.P.KBalaji P.K wrote:
Can any one provide solution for this or whether there are any other ways to achive this scenario.Difficult as we have no idea what this "scenario" actually is. Go back several steps and explain in detail the problem this is supposed to solve.
I have a tabular form which contains a column named as SQLBad idea. <tt>SQL</tt> is a PL/SQL reserved word. Using any token from Oracle namespaces as a database identifier is confusing/problematic.
which has sql statements in it.Why? Where does this SQL come from? What is the source of the tabular form?
Without going to the SQL workshop in Apex i want to execute that query in the tabular form itself.Explain the "execute that query in the tabular form itself" concept. Where do the results go? -
Execute an sql command other than an select statement
hello,
is it possible to execute an sql-command other than a
select statement in a report ?
something like execute ... ?
i want ro execute a statement BEFORE the select ...
or is the one and only possible statement in a report
a "select ?"
greetings
Thorsten LorenzHi ,
You can always use the Report triggers to execute any other SQL commands . If you need to execute them before the SELECT statement of you Data Model query , then You can use the Parameter Form triggers / before Report Trigger. Be sure to put in a commit statement as well, if the result of the Select statement you intend to do depends on these SQL commands.
Thanks
Oracle Reports Team. -
Hi All,
I am working on JDBC receiver which is select statement to fetch the data from SQL server base on the Primary key.
But i am getting this type of error
Error while parsing or executing XML-SQL document: Error processing request in sax parser: Error when executing statement for table/stored proc. 'DOM_CREDIT_CHECK ' (structure 'CheckCustomer'): java.sql.SQLException: FATAL ERROR document format: structure 'CheckCustomer', no key element found
Error processing request in sax parser: Error when executing statement for table/stored proc. 'DOM_CREDIT_CHECK ' (structure 'CheckCustomer'): java.sql.SQLException: FATAL ERROR document format: structure 'CheckCustomer', no key element found
Error processing request in sax parser: Error when executing statement for table/stored proc. 'DOM_CREDIT_CHECK ' (structure 'CheckCustomer'): java.sql.SQLException: FATAL ERROR document format: structure 'CheckCustomer', no key element found
Please help me to solve this error.
Thanks in advance,
Azeez.please view similar thread
JDBC: How to select only those records which contains col1 is NULL -
Execute an string as select statement
Hi,
I have a problem:
I'm working with an older oracle verion (7.x??). I want to create a dynamic select statement. I create a string, e.g. v_sql_string, and want the database to execute it. What possibilities do I have to do this?
Thanks in advance
MathiasYes,
I went through the documentation, but it's only working with cursors.
For better comprehension:
This is the string:
'select count(*) from invoice where sup_no ' || op_sup_no || ' v_sup_no and trpt_code ' || op_trpt_code || ' v_trpt_code and ship_no ' || op_ship_no || ' v_ship_no'
I want to set the operators (op_xxx) dynamiclly. Isn't there something like RUN or EXECUTE, where I only have to pass a string, and the statement is executed ...
But I don't know how ...
Mathias -
Hi,
we are running a query with a big dunamic select statement from VB code using ADO command object. When Execute method is called system hangs and control won't return back to the application. it seems to be that there is some type limitation on Query string length. Please tell us if there is any?
we are running Oracle 8.1.7 Server on Windows 200 Server and connecting from a W2K professional, ADO 2.6 and Oracle OLEDB 8.1.7.1 OLEDB Driver.
Sample code:
Dim rs As ADODB.Recordset
Dim cmd As ADODB.Command
Set cmd = New Command
With cmd
.CommandText = ' some text with more than 2500 characters
.CommandType = adCmdText
Set rs = .Execute
End With
when i debug using VB6 and when .Execute line is called system hangs or return a message method <<somemethod> of <<some class name>> failed error.
Any help is appreciated.
Thanks,
AnilA stored procedure would only slow you down here if it was poorly written. I suspect you want to use the translate function. I'm cutting & pasting examples from the documentation-- a search at tahiti.oracle.com will give you all the info you'll need.
Examples
The following statement translates a license number. All letters 'ABC...Z' are translated to 'X' and all digits '012 . . . 9' are translated to '9':
SELECT TRANSLATE('2KRW229',
'0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ',
'9999999999XXXXXXXXXXXXXXXXXXXXXXXXXX') "License"
FROM DUAL;
License
9XXX999
The following statement returns a license number with the characters removed and the digits remaining:
SELECT TRANSLATE('2KRW229',
'0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ', '0123456789')
"Translate example"
FROM DUAL;
Translate example
2229
Also, LIKE '%<string>%' is going to be rather expensive simply because it has to compare the entire string and because it forces full table scans, rather than using indexes. You could speed this sort of query up by using interMedia Text (Oracle Text now in 9i). If you can eliminate one of the '%' options, you could also improve things.
My guess is that your stored procedure is inefficient and that's causing the problem-- 5k rows per table should be pretty trivial.
If you post your query over on the PL/SQL forum, there are better performance tuners than I that might have more hints for you. To get really good advice, though, you'lllikely have to get at least the execution plan for this statement and may need to do some profiling to identify the problem areas.
Justin -
How to execute a SELECT statement in java??
Hello !!
In my java program , i need to delete a record of number X, so
i accept the number X from the keyboard
Then before deleting it
i want the program to show me the name, age of the record which has the number X
How to do thishello kylas
actually i didnt get why this program example?? wats
its executing ??? Look at reply #3 in your other thread:
http://forum.java.sun.com/thread.jspa?threadID=713289&messageID=4126346
Notice the similarity? You've now asked "How to delete a record in Java" and "how to execute a select statement in java". You may have noticed that, aside from the SQL and the call to execute and executeUpdate (for delete) it's the same code. This is because you don't so much do these things in Java, you do them in SQL. The Java code simply asks the Driver to execute whatever SQL you write. So, I really hope your next post isn't "how do I execute an UPDATE statement in Java".
Good Luck
Lee -
Execute A select statement under Oracle connection?
Hi,
How can i execute a select statement
under an existing Oracle connecton without
defining extera JDBC connection.Be aware that you can create View Objects that are NOT based on entity objects. In this case, they are read only, but if you just want to display results, or check for a specific value, it at least reduces the overhead of an EO.
I'm not sure that answers the question here, but thought I would at least throw it out there.
In the View Object wizard, on the page that asks you to choose an EO, just click Next without selecting any EOs. This will automatically put you in expert query mode. Just type in your query and go.
You do have to be a little careful with expert mode queries, especially if you go back and edit them later. You need to make sure to keep the attribute mapping in synch on the Attribute page.
Also, I have found some limitations to this approach, which I'm not sure are fixed in 3.2. Namely, you can't use setWhereClause() to set the entire where clause string from the client. You have to use setWhereClauseParams(). This means that you have to have the basic where clause included in the query and user parameters as placeholders for the where clause values. These are JSP methods, I'm not sure what the equivalent is in DAC, but I am pretty sure the same limitation is there. -
Error when executing interface which load data from csv file which has 320
Hi,
Can some one provide a resolution for below error:
I have created an interface which load data from csv file which has 320 columns, to a Synonym which has 320 columns in it
using LKM File to SQL, IKM Sql Control Append.
I am getting below error when executing the interface :
com.sunopsis.tools.core.exception.SnpsSimpleMessageException: ODI-17517: Error during task interpretation. Task: 6 java.lang.Exception: BeanShell script error: Sourced file: inline evaluation of: ``out.print("The application script threw an exception: java.lang.StringIndexOutOf . . . '' Token Parsing Error: Lexical error at line 2, column 42. Encountered: "\\" (92), after : "": <at unknown location> BSF info: Create external table at line: 0 column: columnNo
at com.sunopsis.dwg.codeinterpretor.SnpCodeInterpretor.transform(SnpCodeInterpretor.java:485)
at com.sunopsis.dwg.dbobj.SnpSessStep.createTaskLogs(SnpSessStep.java:711)
at com.sunopsis.dwg.dbobj.SnpSessStep.treatSessStep(SnpSessStep.java:461)
at com.sunopsis.dwg.dbobj.SnpSession.treatSession(SnpSession.java:2093)
at 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)
at oracle.odi.runtime.agent.processor.impl.StartSessRequestProcessor.access$0(StartSessRequestProcessor.java:292)
at oracle.odi.runtime.agent.processor.impl.StartSessRequestProcessor$StartSessTask.doExecute(StartSessRequestProcessor.java:855)
at oracle.odi.runtime.agent.processor.task.AgentTask.execute(AgentTask.java:126)
at oracle.odi.runtime.agent.support.DefaultAgentTaskExecutor$2.run(DefaultAgentTaskExecutor.java:82)
at java.lang.Thread.run(Thread.java:662)
Caused by: org.apache.bsf.BSFException: BeanShell script error: Sourced file: inline evaluation of: ``out.print("The application script threw an exception: java.lang.StringIndexOutOf . . . '' Token Parsing Error: Lexical error at line 2, column 42. Encountered: "\\" (92), after : "": <at unknown location>
BSF info: Create external table at line: 0 column: columnNo
at bsh.util.BeanShellBSFEngine.eval(Unknown Source)
at bsh.util.BeanShellBSFEngine.exec(Unknown Source)
at com.sunopsis.dwg.codeinterpretor.SnpCodeInterpretor.transform(SnpCodeInterpretor.java:471)
... 11 more
Text: The application script threw an exception: java.lang.StringIndexOutOfBoundsException: String index out of range: 2 BSF info: Create external table at line: 0 column: columnNo
out.print("createTblCmd = r\"\"\"\ncreate table ") ;
out.print(odiRef.getTable("L", "COLL_NAME", "W")) ;
out.print("<?=(extTabColFormat.getUseView())?\"_ET\":\"\"?>\n(\n\t") ;
out.print(odiRef.getColList("", "[CX_COL_NAME]\\t"+
"<?=extTabColFormat.getExtTabDataType(\\u0022[CX_COL_NAME]\\u0022,\\u0022[SOURCE_DT]\\u0022, \\u0022[DEST_WRI_DT]\\u0022, \\u0022[COL_FORMAT]\\u0022, \\u0022[BYTES]\\u0022, \\u0022[LONGC]\\u0022, \\u0022[SCALE]\\u0022)?>"
, ",\\n\\t", "","")) ;
out.print("\n)\nORGANIZATION EXTERNAL\n(\n\tTYPE ORACLE_LOADER\n\tDEFAULT DIRECTORY dat_dir\n\tACCESS PARAMETERS\n\t(\n\t\tRECORDS DELIMITED BY 0x'") ;
out.print(odiRef.getSrcTablesList("[XFILE_SEP_ROW]","")) ;
out.print("'\n\t\t") ;
out.print(odiRef.getUserExit("EXT_CHARACTERSET")) ;
out.print("\n\t\t") ;
out.print(odiRef.getUserExit("EXT_STRING_SIZE")) ;
out.print("\n\t\tBADFILE\t\t'") ;
out.print(odiRef.getSrcTablesList("", "[RES_NAME]", "", "")) ;
out.print("_%a.bad'\n\t\tLOGFILE\t\t'") ;
out.print(odiRef.getSrcTablesList("", "[RES_NAME]", "", "")) ;
out.print("_%a.log'\n\t\tDISCARDFILE\t'") ;
out.print(odiRef.getSrcTablesList("", "[RES_NAME]", "", "")) ;
out.print("_%a.dsc'\n\t\tSKIP \t\t") ;
out.print(odiRef.getSrcTablesList("", "[FILE_FIRST_ROW]", "", "")) ;
out.print("\n") ;
if (odiRef.getSrcTablesList("", "[FILE_FORMAT]", "", "").equals("F")) {out.print("\n\t\tFIELDS\n\t\t") ;
out.print(odiRef.getUserExit("EXT_MISSING_FIELD")) ;
out.print("\n\t\t(\n\t\t\t") ;
out.print(odiRef.getColList("", "[CX_COL_NAME]\\tPOSITION([FILE_POS]:[FILE_END_POS])\\t"+
"<?=extTabColFormat.getExtTabFormat(\\u0022[CX_COL_NAME]\\u0022,\\u0022[SOURCE_DT]\\u0022, \\u0022DEST_WRI_DT\\u0022, \\u0022[COL_FORMAT]\\u0022, \\u0022[BYTES]\\u0022, \\u0022[LONGC]\\u0022, \\u0022[SCALE]\\u0022)?>"
, ",\\n\\t\\t\\t", "","")) ;
out.print("\t\t\n\t\t)\n\t)\n") ;
} else {out.print("\n\t\tFIELDS TERMINATED BY x'") ;
out.print(odiRef.getSrcTablesList("", "[XFILE_SEP_FIELD]", "", "")) ;
out.print("'\n\t\t") ;
if(odiRef.getSrcTablesList("", "[FILE_ENC_FIELD]", "", "").equals("")){out.print("\n\t\t") ;
} else {out.print("OPTIONALLY ENCLOSED BY '") ;
out.print(odiRef.getSrcTablesList("", "[FILE_ENC_FIELD]", "", "").substring(0,1)) ;
out.print("' AND '") ;
out.print(odiRef.getSrcTablesList("", "[FILE_ENC_FIELD]", "", "").substring(1,2)) ;
out.print("' ") ;
}out.print("\n\t\t") ;
out.print(odiRef.getUserExit("EXT_MISSING_FIELD")) ;
out.print("\n\t\t(\n\t\t\t") ;
out.print(odiRef.getColList("", "[CX_COL_NAME]\\t"+
"<?=extTabColFormat.getExtTabFormat(\\u0022[CX_COL_NAME]\\u0022,\\u0022[SOURCE_DT]\\u0022, \\u0022DEST_WRI_DT\\u0022, \\u0022[COL_FORMAT]\\u0022, \\u0022[BYTES]\\u0022, \\u0022[LONGC]\\u0022, \\u0022[SCALE]\\u0022)?>"
, ",\\n\\t\\t\\t", "","")) ;
out.print("\t\t\n\t\t)\n\t)\n") ;
}out.print("\tLOCATION (") ;
out.print(odiRef.getSrcTablesList("", "'[RES_NAME]'", "", "")) ;
out.print(")\n)\n") ;
out.print(odiRef.getUserExit("EXT_PARALLEL")) ;
out.print("\nREJECT LIMIT ") ;
out.print(odiRef.getUserExit("EXT_REJECT_LIMIT")) ;
out.print("\n\"\"\"\n \n# Create the statement\nmyStmt = myCon.createStatement()\n \n# Execute the trigger creation\nmyStmt.execute(createTblCmd)\n \nmyStmt.close()\nmyStmt = None\n \n# Commit, just in case\nmyCon.commit()") ;
****** ORIGINAL TEXT ******
createTblCmd = r"""
create table <%=odiRef.getTable("L", "COLL_NAME", "W")%><?=(extTabColFormat.getUseView())?"_ET":""?>
<%=odiRef.getColList("", "[CX_COL_NAME]\t"+
"<?=extTabColFormat.getExtTabDataType(\u0022[CX_COL_NAME]\u0022,\u0022[SOURCE_DT]\u0022, \u0022[DEST_WRI_DT]\u0022, \u0022[COL_FORMAT]\u0022, \u0022[BYTES]\u0022, \u0022[LONGC]\u0022, \u0022[SCALE]\u0022)?>"
, ",\n\t", "","")%>
ORGANIZATION EXTERNAL
TYPE ORACLE_LOADER
DEFAULT DIRECTORY dat_dir
ACCESS PARAMETERS
RECORDS DELIMITED BY 0x'<%=odiRef.getSrcTablesList("[XFILE_SEP_ROW]","")%>'
<%=odiRef.getUserExit("EXT_CHARACTERSET")%>
<%=odiRef.getUserExit("EXT_STRING_SIZE")%>
BADFILE '<%=odiRef.getSrcTablesList("", "[RES_NAME]", "", "")%>_%a.bad'
LOGFILE '<%=odiRef.getSrcTablesList("", "[RES_NAME]", "", "")%>_%a.log'
DISCARDFILE '<%=odiRef.getSrcTablesList("", "[RES_NAME]", "", "")%>_%a.dsc'
SKIP <%=odiRef.getSrcTablesList("", "[FILE_FIRST_ROW]", "", "")%>
<% if (odiRef.getSrcTablesList("", "[FILE_FORMAT]", "", "").equals("F")) {%>
FIELDS
<%=odiRef.getUserExit("EXT_MISSING_FIELD")%>
<%=odiRef.getColList("", "[CX_COL_NAME]\tPOSITION([FILE_POS]:[FILE_END_POS])\t"+
"<?=extTabColFormat.getExtTabFormat(\u0022[CX_COL_NAME]\u0022,\u0022[SOURCE_DT]\u0022, \u0022DEST_WRI_DT\u0022, \u0022[COL_FORMAT]\u0022, \u0022[BYTES]\u0022, \u0022[LONGC]\u0022, \u0022[SCALE]\u0022)?>"
, ",\n\t\t\t", "","")%>
<%} else {%>
FIELDS TERMINATED BY x'<%=odiRef.getSrcTablesList("", "[XFILE_SEP_FIELD]", "", "")%>'
<% if(odiRef.getSrcTablesList("", "[FILE_ENC_FIELD]", "", "").equals("")){%>
<%} else {%>OPTIONALLY ENCLOSED BY '<%=odiRef.getSrcTablesList("", "[FILE_ENC_FIELD]", "", "").substring(0,1)%>' AND '<%=odiRef.getSrcTablesList("", "[FILE_ENC_FIELD]", "", "").substring(1,2)%>' <%}%>
<%=odiRef.getUserExit("EXT_MISSING_FIELD")%>
<%=odiRef.getColList("", "[CX_COL_NAME]\t"+
"<?=extTabColFormat.getExtTabFormat(\u0022[CX_COL_NAME]\u0022,\u0022[SOURCE_DT]\u0022, \u0022DEST_WRI_DT\u0022, \u0022[COL_FORMAT]\u0022, \u0022[BYTES]\u0022, \u0022[LONGC]\u0022, \u0022[SCALE]\u0022)?>"
, ",\n\t\t\t", "","")%>
<%}%> LOCATION (<%=odiRef.getSrcTablesList("", "'[RES_NAME]'", "", "")%>)
<%=odiRef.getUserExit("EXT_PARALLEL")%>
REJECT LIMIT <%=odiRef.getUserExit("EXT_REJECT_LIMIT")%>
# Create the statement
myStmt = myCon.createStatement()
# Execute the trigger creation
myStmt.execute(createTblCmd)
myStmt.close()
myStmt = None
# Commit, just in case
myCon.commit().
at com.sunopsis.dwg.dbobj.SnpSessStep.createTaskLogs(SnpSessStep.java:738)
at com.sunopsis.dwg.dbobj.SnpSessStep.treatSessStep(SnpSessStep.java:461)
at com.sunopsis.dwg.dbobj.SnpSession.treatSession(SnpSession.java:2093)
at 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)
at oracle.odi.runtime.agent.processor.impl.StartSessRequestProcessor.access$0(StartSessRequestProcessor.java:292)
at oracle.odi.runtime.agent.processor.impl.StartSessRequestProcessor$StartSessTask.doExecute(StartSessRequestProcessor.java:855)
at oracle.odi.runtime.agent.processor.task.AgentTask.execute(AgentTask.java:126)
at oracle.odi.runtime.agent.support.DefaultAgentTaskExecutor$2.run(DefaultAgentTaskExecutor.java:82)
at java.lang.Thread.run(Thread.java:662)The issue is encountered because the text delimiter used in the source file did not consist of a pair of delimiters.
Please see support Note [ID 1469977.1] for details.
Maybe you are looking for
-
Cleared/Open Item Symbol not Green for Cleared Items
F.13 process for clearing GR/IR matched items runs to tag documents as cleared. For some reason the Cleared/Open Item Indicator is still showing the status as "Red" for the items which are actually cleared, means the items are shown as "Open" while s
-
Mac OS X can't be installed on this computer snow leopard
I just bought a new iMac and want to give my old iMac to my sister. It was bought during the leopard days and I upgraded it to Snow Leopard. I started up my iMac and went into Disk Utilities. I verified and repaired disk permissions. Then I went to v
-
Premiere Elements 12 Effects-Panel not working
Hi there! I've recently updated to Elements 12 (from 10) and I am more or less happy, but since today, I can't use the effects-panel anymore. When I click any effect, the options won't pop up (see attached screenshot). Does anyone know what to do? I'
-
NME-CUE Port adapter is disabled
Hi Guys, in need of a little help, i'm trying to install a NME-CUE into a CISCO3845 but the card is showing as disabled Installed c3845-spservicesk9-mz.150-1.M10.bin and PVDM2-64 Slot 1: Integrated Service Engine Port adapter, 1 port
-
Short dump while DB Connect extraction(PERFORM_CONFLICT_TAB_TYPE)
HI ALL, Here i am facing a problem while loading master data for one info object by using DB Connect source system, it is going to short dump with runtime error PERFORM_CONFLICT_TAB_TYPE and the exception is CX_SY_DYN_CALL_ILLEGAL_TYPE but for other