Call Function from SSIS package
Hello. I have a field pulled from an Access database that I need to manipulate before processing. I need to strip out illegal characters. What's the best way to use a function to process the data in the table. I was hoping to do this
within the package if possible.
From within Access, a query passed values to a function defined within a code module and returned the new value. The SSIS package needs to be able to do this as well.
Hi,
You can can remove the illegal characters in the package. On your Data Flow Task drag a script component in the script component input columns only check the field you will process.
private string NewCharacter(string character)
string replacestr= System.Text.RegularExpressions.Regex.Replace(character, "[^a-zA-Z0-9.]+", " ");
return replacestr.Trim();
public override void Input0_ProcessInputRow(Input0Buffer Row)
if(Row.FieldName_IsNull == false)
{//Assign the new value
Row.FieldName = NewCharacter(Row.FieldName);
Similar Messages
-
How to Call Function from SAPSCRIPT
I want to Call a function from my SAPSCRIPT to get some data and print the same in the form , Can I get an example for this
Hi Nandan,
U cannot directly call function from SAPScript... For that u have to create one include in which u need to write the code. Using Perform... EndPerform u can call the same from SAPScript. See the below example
u need to write this code in SAPScript
PERFORM formname IN PROGRAM includename
USING &field1&
USING &field2&
CHANGING &field3&
ENDPERFORM
Here includename is your include type program.
u need to write this code in your include type program..
FORM formname TABLES in_par STRUCTURE itcsy
out_par STRUCTURE itcsy.
data : var1 like field1,
var2 like field2,
var3 like field3.
READ TABLE in_par WITH KEY 'field1'.
CHECK sy-subrc = 0.
var1 = in_par-value.
READ TABLE in_par WITH KEY 'field2'.
CHECK sy-subrc = 0.
var2 = in_par-value.
now u can call corresponding function using local VAR1 and VAR2. Here u can pass N no of USING parameters.
After processing on VAR3...
READ TABLE out_par WITH KEY 'field3'.
out_par-value = VAR3.
MODIFY out_par INDEX sy-tabix.
EndForm.
Here in_par and out_par are the structures which will be used to communicate with SAPScript. And this is the only way as per my view.
I m sure this code will work fine. Here i have used dummy variables that u need to change as per your requirement. If u have more queries write me back.
And yes if this works than dont forget to give the points.
Regards,
Sagar -
Call function from data base with clob input parameter.
Hello,
In this project I use Jdev 11g.
I call function from database.
create or replace function get_fa_list (
p_fa_id_list in clob
return sys_refcursor
is
vCursor sys_refcursor;
begin
put_msg ('begin');
if p_fa_id_list is null then
put_msg ('CLOB is null!');
else
put_msg ('size CLOB: ' || dbms_lob.getlength (p_fa_id_list));
end if;
put_msg ('Save');
open vCursor for
select rownum as id, s.*
from (
select f.latitude, f.longitude, count (distinct f.res_id) as res_count, count (*) as fa_count, 16711680 as color, res_concat_distinct (f.res_id) as station_list
from mv_frequency_assignment f, table (SplitClob (p_fa_id_list, ',')) l
where f.ext_system = 'BI' and
f.ext_sys_id = l.column_value
group by f.latitude, f.longitude
) s;
put_msg ('Open and End');
return vCursor;
end get_fa_list;
I use TopLink in ejb.
i use follow code for call function and get result.
public List<TmpResPoints> findAllPointsBI(String p_id){
UnitOfWork uow = getSessionFactory().acquireUnitOfWork();
uow.beginEarlyTransaction();
StoredFunctionCall call = new StoredFunctionCall();
call.setProcedureName("get_fa_list");
call.useUnnamedCursorOutputAsResultSet();
ClobDomain c = new ClobDomain(p_id);
//System.out.println(c.toString());
call.addNamedArgumentValue("p_fa_id_list", c);
ReadAllQuery query = new ReadAllQuery();
query.setReferenceClass(TmpResPoints.class);
query.setCall(call);
List<TmpResPoints> result = (List<TmpResPoints>)uow.executeQuery(query);
uow.commit();
uow.release();
return result;
But size parameter "p_fa_id_list" is 0. (geting from temp table in Data base). this code in function >>
if p_fa_id_list is null then
put_msg ('CLOB is null!');
else
put_msg ('size CLOB: ' || dbms_lob.getlength (p_fa_id_list));
end if;)
How I can call this function from dataBase and get result?
thx,
Demka.What is the SQL generated?
The argument should just be the Clob value (a String) not the domain object.
Also try addNamedArgument, and then pass the named argument to the query.
James : http://www.eclipselink.org -
Send data to ECC table through RFC Call function from SAP B1 via b1if
Hi,
I have created scenario in B1if which triggers from SAP B1, now I have to send this data in to ECC table, so I have created scenario for that with inbound SAP B1, outbound void and in process RFC Call atom is there but I am not getting data in receiver and also how to write xml to send data in RFC function. Function for RFC has configured from ECC end and have access of that function.
So please help me to send data to ECC table through RFC Call function from SAP B1 (9.0) via b1if
ThanksSolved by my own.
-
How to Create .EXE from SSIS Package
Hello All,
Can you we create .exe file from SSIS Package in SSIS 2012
Please share suggestions on this.
Regards,
VaishuSSIS doesn't create executable files.
The closest you have to an "executable" is the deployment to an Integration Services Server (the ispac file) -
Excel Connection Manager suddenly can no longer connect to Excel from SSIS package
<p>During the last 3 months, I used 32 bit SSIS 2008 (v 10.50.2500.0) on an WinXp machine (v 5.1.2600 SP3 Build 2600) to create a package that writes multiple query results (reports) to an excel spreadsheet. Each report is written to a different
tabbed sheet in the same spreadsheet. </p><p>The package was working just fine until May 9 2013, when suddenly every single Data Flow task with an Excel Destination displayed error icons and raised the following
error message when opening the Advanced Editor:</p><p>SSIS Error Code DTS_E_OLEDBERROR. An OLE DB error has occurred. Error code: 0x80004005 Description: "Unspecified error". <br />Error at <DataFlow task name>: SSIS
error Code DTS_E_CANNOTACQUIRECONNECTIONFROMCONNECTIONMANAGER. The AcquireConnection method call to the connection manager <Excel connection Manager> failed with error code 0xC0202009. There may be error messages posted before this with more
information on why the Acquire Connection method call failed. Exception from HRESULT: 0Xc020801c (Microsoft.SQlServer.DTSPipelineWrap)</p><p>Originally the error message reported that the Error Code was "0x8000FFFF", but I can't seem
to reproduce that error code since. Now I am only getting the above error message.</p><p>From the time I created the original package (when it worked fine) until now, I have been using the same computer, writing to a (32 bit) 2010 Excel file in
a local folder. The filename and location have not changed. The ConnectionString has not changed. The Connnection String I am using is Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Conversion\Conversion Results_dt01.xlsx;Extended Properties="EXCEL
12.0 XML;HDR=YES;". </p><p>Now an attempt to create and test a NEW Connection Manager yields me this error. "Test connection failed because of an error in initializing provider. Unspecified error.", whereas before I had
no problems creating a new connection manager.</p><p>I checked a second SSIS package, which I also built during the past 3 months, which loads multiple sheets from multiple Excel files to a SQL Server 2008 database holding table. It uses the same
ACE OLE DB 12.0 connection to load the Excel speadsheets and this package continues to work fine on the same workstation.</p><p>In desparation, wondering if the Microsoft ACE OLE DB 12.0 driver had become corrupt (even though the second package
was raising no errors), I did download and install the Microsoft ACE OLE DB 12.0 driver. That did not solve my problems with the first package.</p><p>I need to get this package running again ASAP as it is targeted for UAT testing in a
matter of days. Any help with this issue would be greatly appreciated!</p>I submitted this issue above and now I am having the same problem again. I am using the same local computer, the same operating system (WinXp v 5.1.2600 SP3 Build 2600) as originally described. I am working with the same SSIS package that
writes multiple query results (reports) to an excel spreadsheet. This package has been successfully executed multiple times, but now I am suddenly getting the same error as follows:
Error at 1ConversionContacts [Connection manager "Excel Connection Manager"]: SSIS Error Code DTS_E_OLEDBERROR. An OLE DB error has occurred. Error code: 0x80004005.
An OLE DB record is available. Source: "Microsoft Access Database Engine" Hresult: 0x80004005 Description: "Unspecified error".
Error at DFlow Write soft deleted duplicate claims to Excel sheet [Excel Destination - write duplicate claim nbrs that have been removed to Excel [61]]: SSIS Error Code DTS_E_CANNOTACQUIRECONNECTIONFROMCONNECTIONMANAGER. The AcquireConnection method
call to the connection manager "Excel Connection Manager" failed with error code 0xC0202009. There may be error messages posted before this with more information on why the AcquireConnection method call failed.
The package will not run because of these multiple errors (multiple because it occurs on every single excel destination in the package).
I have Run64BitRuntime set to false on the project. I have triple checked that the excel file name (which I created and can access) exists with the correct name in the correct path, which is local on my machine. The file is the same file in the same
location as when the package worked. I am running the SSIS service under my own network login, as I was when the package worked. I have been consistently getting this same error whenever I change my network password without updating the password
in the SSIS service, but I have triple verified that the service is using my latest password. If I try to open and edit the Excel Destination in any DataFlow task I get the same error. I can successfully create a new Excel Connection Manager pointing
to the same excel file. However if I try to assign the newly created Excel Connection Manager in the data flow, I cannot activate the drop down to choose the Excel sheet without getting an 'Unspecified error' message. I then swapped out
the file with its template version, and ensured the name was updated as correct. I still get the same errors.
Oh, and the SSIS package is extracting data from a SQL Server 2008 database with an ADO.net Connection Manager using Windows authentication. I have no problems with the SQL Server connection, it has always worked and still does. It is only
the connection to excel output file which is locally stored on my machine.
Has anyone got any suggestions for me? -
Getting error while trying to upload the data in excel from SSIS package through sql agent job
We are getting below errors.
Error:
The Microsoft Jet database engine cannot open the file '\\serversdev\Documents\QC Files\Prod.xls'. It is already opened exclusively by another
user, or you need permission to view its data.
Please suggest ASAP
Regards,
Ramu
Ramu GadeHi Dikshan Gade,
According to your description, you want to upload data from excel to database, when you call ssis package through SQL Server Agent job, you got the error message.
To troubleshoot the problem, please refer to the following steps:
Validate that the account has permissions on the file and the folder.
Verify that the file and the data source name (DSN) are not marked as Exclusive.
Make sure SQL Server Agent Services service account has the permission to access the database.
We can check SQL Server Agent’s activity logs, Windows Event logs and SSIS logs to get more clues. Also the tool Process Monitor is helpful to track the cause of registry or file access related issues. For more information about the issue, please refer to
the following KB article:
http://support.microsoft.com/kb/306269
If you have any more questions, please feel free to ask.
Thanks,
Wendy Fu
Wendy Fu
TechNet Community Support -
Getting session hang When calling Function from SQL query
Hi All,
I am using Oracle 8.1.7.4.0. I have a fucntion in a Package and I am calling it from the SQL query. When I am firing the query my oracle session is going to hang position and I am not able to any thing. I have to kill the session.
But this same thing is working fine in Oracle 9.i.
There are no out parameter and no DML, DDL and DCL statement in this fucntion.
Could you please get back me what is the problem on it.
Regards
SUNCheck why your session hangs.
Just a few ideas:
* Blocking locks?
* Endless loop?
* Performance (maybe it is just slow in orac8i and you have to wait a bit longer). Check the execution plans of the SQL statements in your function.
* Don't use a function, but direct SQL, it is faster in both versions. -
How to call function from Merge?
Hello,
I have a cursor with a loop and a Merge.
I need to call a package function from Merge instead of direct Insert.
Is is possible?
Instead of Insert:
FOR c1 in (SELECT EMP_ID..
FROM..
WHERE.. )
Loop
Merge into EMP em using DUAL
On (em.EMP_ID = c1.EMP_ID)
When Not Matched Then
Insert (EMP_ID..)
Values (c1.EMP_ID.. );
End Loop;
I need to call a function to get back a confirmation of insert:
FOR c1 in (SELECT EMP_ID..
FROM..
WHERE.. )
Loop
Merge into EMP em using DUAL
On (em.EMP_ID = c1.EMP_ID)
When Not Matched Then
v_return := p_util.emp_audit (c1.EMP_ID.. );
End Loop;
I know that the second sample code is incorrect. it is just to give an idea of what I'm trying to achieve.
Is there a way around it?
What is the correct way to call a function from there?
I am on Apex 4.2
Thank you.Hi Leons,
I have a cursor with a loop and a Merge.
I need to call a package function from Merge instead of direct Insert.
Is is possible?
No, merge statement is not meant for it. It is meant for combining multiple DML operations.
Refer :
http://docs.oracle.com/cd/B28359_01/server.111/b28286/statements_9016.htm#SQLRF01606 Oracle DB 11g
http://docs.oracle.com/database/121/SQLRF/statements_9016.htm#SQLRF01606 Oracle DB 12c
You have to change your logic to achieve what you want.
Hope this helps!
Regards,
Kiran -
Call Function from PLSQL--ORA-31013 : Invalid XPATH expressioon
I tried the following SQL statement. when I called function,it giving error.
select *
from v$version;
1
Oracle Database 10g Enterprise Edition Release 10.2.0.3.0 - 64bi
2
PL/SQL Release 10.2.0.3.0 - Production
3
CORE 10.2.0.3.0
Production
4
TNS for Linux: Version 10.2.0.3.0 - Production
5
NLSRTL Version 10.2.0.3.0 - Production
function READ_SYSTEM_RESPONSE(PARAM IN CLOB)
RETURN NUMBER
AS
l_namespace varchar2(1000):='xsi:schemaLocation="http://www.unece.org/cefact/namespaces/StandardBusinessDocumentHeader PackageProxy.xsd"
xmlns:sh="http://www.unece.org/cefact/namespaces/StandardBusinessDocumentHeader"
xmlns:ef="http://www.efatura.gov.tr/package-namespace"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"';
x XMLTYPE
:= XMLTYPE('<?xml version="1.0" encoding="UTF-8"?>
<sh:StandardBusinessDocument xsi:schemaLocation="http://www.unece.org/cefact/namespaces/StandardBusinessDocumentHeader PackageProxy.xsd"
xmlns:sh="http://www.unece.org/cefact/namespaces/StandardBusinessDocumentHeader"
xmlns:ef="http://www.efatura.gov.tr/package-namespace"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<sh:StandardBusinessDocumentHeader>
<sh:HeaderVersion>1.0</sh:HeaderVersion>
</sh:StandardBusinessDocumentHeader>
</sh:StandardBusinessDocument>');
CURSOR ana IS
SELECT 1--EXTRACTVALUE(VALUE (p),'/sh:StandardBusinessDocumentHeader/sh:HeaderVersion',l_namespace) AS IMZA
FROM TABLE(XMLSEQUENCE (EXTRACT (x,'/sh:StandardBusinessDocument',l_namespace))) p;
BEGIN
FOR r IN ana
loop
dbms_output.put_line('- - - - - - -');
end loop;
RETURN 1;
EXCEPTION WHEN OTHERS THEN
dbms_output.put_line(sqlerrm);
RETURN 0;
END;odie_63 wrote:
Remove this from the l_namespace string, it has nothing to do in there, it's not a namespace declaration :
xsi:schemaLocation="http://www.unece.org/cefact/namespaces/StandardBusinessDocumentHeader PackageProxy.xsd
As a general rule, just declare the namespace(s) - default or prefixes - you need to resolve the XPath expression.
Once you correct that part, you'll discover that your query returns NULL.
That's because the XPath doesn't point to any node.
Try this instead :
SELECT EXTRACTVALUE(
VALUE (p)
, '/sh:StandardBusinessDocument/sh:StandardBusinessDocumentHeader/sh:HeaderVersion'
, l_namespace
) AS IMZA
FROM TABLE(
XMLSEQUENCE(
EXTRACT (x, '/sh:StandardBusinessDocument', l_namespace)
) p
Thanks odie_63,You're right. I removed " xsi:schemaLocation="http://www.unece.org/cefact/namespaces/StandardBusinessDocumentHeader PackageProxy.xsd" and It is working! -
Call function from action panel in second frame
I am starting to learn Adobe Flash. I'm using Flash CS6.
I have a file called test.fla and another called bikertest.as
Bikertest has this code:
package as3.grey{
import com.grey.utils.Console;
//import com.grey.utils.ClickTag;
import flash.display.MovieClip;
import com.greensock.TweenNano;
import com.greensock.easing.*;
import flash.events.*;
public class bikertest extends MovieClip {
private var mc:MC;
private var console:Console;
public function ray():void{
init();
trace("hi from here");
mc=new MC
; addChild(mc);
I tried:
import as3.grey.bikertest.as;
var t = new bikertest();
t.ray();
I want to be able to call ray() from the Action Panel in the second frame in test.fla . I hope this is clear. How can I do that? /Thanks!assuming your fla is in a super directory of as/grey and everything in bikertest is defined, use:
import as3.grey.bikertest;
var t:bikertest=new bikertest();
t.ray(); -
Hi Folks, I am in the middle of EDQ Proof of Concept. I am creating a Microsoft SQL Server Integration Service (SSIS) package to call EDQ. I have create a batch (***.bat) that calls the EDQ job to run my Data Quality job. What would be the best way to call the job from SSIS would a web service be better than calling a bat file?
Thanks
PaulThat depends if you are processing large batches of data, or processing either individual requests or small batches (up to 1000 or so records).
If you are processing large batches, I would call an EDQ batch job using the command line interface (as you are presumably doing now), handing over the data via a shared DB or a text file.
If you are processing individual requests or small batches, I would recommend using EDQ's real-time interface (either JMS or Web Services).
For more info, see the Integration Essentials. -
How to call functions that return package local types?
Hi everyone, I have a Pl/Sql function in a package that returns a package-local type.
I would like to call this function from Java, but I don't know what to pass to "statement.registerOutParameter()"
(it gives this error:
Unable to resolve type: "XDRIVE_B2B.TEST1.MYTYPE)
Here's the simple version with one package:
package TESTPKG IS
TYPE MYTYPE IS VARRAY(1) OF INTEGER;
FUNCTION FCT2 RETURN MYTYPE;
end;
package body testpkg IS
FUNCTION FCT2 RETURN MYTYPE IS
BEGIN
RETURN mytype(55);
END;
end;
and here's the java code:
void javatest(OracleConnection conn)
throws SQLException
String sql = "{ call ? = testpkg.fct2() }";
OracleCallableStatement st =
(OracleCallableStatement) conn.prepareCall(sql);
st.registerOutParameter(1, OracleTypes.ARRAY, "MYUSERNAME.TESTPKG.MYTYPE");
st.execute();
and as I said above, the java code fails with:
java.sql.SQLException: Fail to construct descriptor: Unable to resolve type: "MYUSERNAME.TEST1.MYTYPE"
I can't really have this type live outside of a package because in the real case, it's not a VARRAY(1) of integer, it's a VARRAY(1) of MYTABLE%ROWTYPE, which only seems to compile inside a package.
thanks for any opinions,
george moudry
nullJDBC, JPublisher, and SQLJ do not support PL/SQL-only types. This includes PL/SQL index tables and record types.
-
Calling function from list of values section?
can i call a function from list of values(LOV) section as well? I know we can sql query but udf is supported?
See this recent thread: Display as Text (LOV) or join
Scott -
Calling function from PL/SQL block
Hi,
A very simple question.
A have a function called "test1" in my database. It is there i double chekked.
I would like to call this function from a block:
DECLARE
BEGIN
TEST1(1202);
END;
This gives me an error.
Why is this?user610868 wrote:
Hi,
A very simple question.
A have a function called "test1" in my database. It is there i double chekked.
I would like to call this function from a block:
DECLARE
BEGIN
TEST1(1202);
END;
This gives me an error.
Why is this?Hello
A very very basic thing to do when you get an error is to include details of it. That helps narrow it down from one of the 1000s of potential Oracle errors it could be.
Anyway, a function returns a value, and in PL/SQL you need to capture that otherwise you'll get "an error". Modify your code like so
DECLARE
l_Test1Val VARCHAR2(4000); --CHANGE THIS TO BE THE SAME AS THE RETURN TYPE FOR YOUR FUNCTION
BEGIN
l_Test1Val := TEST1(1202);
END;HTH
David
Edited by: Bravid on Oct 25, 2011 3:57 PM
removed a ;
Maybe you are looking for
-
Can I upgrade my ipod touch from ios6.1.5 to ios7 which i need to use bbc podcasts
I want to be able to download BBC podcasts. My ipod touch has IOS6.1.5 but to access podcasts I need ios7. Is it possible to install IO7 and how do I do it? Thanks for any help. Bob
-
Bug in applying read only security status to a PDF portfolio?
Hi, A quick question about setting up a pdf portfolio as 'read only', so users cannot save amended versions of the document within the portfolio, they can only go to 'save as'. I have set this up, using Adobe Professional 9, using the following pro
-
Function module for comparing dates and times
Hi, I have a date and time stamp in one filed for example as below: 20070125183045 (the first 8 are date in YYYYMMDD format, the next 6 is time in HHMMSS format). Now I want to compare this value to another such value in terms of date and time. First
-
Exporting grouped shapes as an image
I have grouped several shapes and text in a single graphic and would like to export into Pages as an image (jpg, gif, whatever). Is this possible? The only way I can figure is to export the entire slide but that is not really the same.
-
Start up from Installation Disk
In Disk Utility it says that to test the start up disk, boot from the OS X Installation Disk, then open Utilities and Disk Utility. You can't. You can only re-install the operating system (placing the existing system in a folder called, 'Previous Sys