Mm-dd-yyyy in expression ssis
hi
i need to user date like 03-31-2015 in my ssis expression for file.
how to do it in expression builder
Hi,
You can use following expression
RIGHT("0" + (DT_WSTR,2)DAY( GETDATE()), 2) + "-"+ RIGHT("0" + (DT_WSTR,2)MONTH(GETDATE()), 2) + "-" +(DT_WSTR,4)YEAR(GETDATE())
In the above expression the GETDATE() function will return the system date
Thanks,
Rakesh
Similar Messages
-
Reformatting partial MM/DD/YYYY dates in SSIS
Hi,
I have a text file being imported where some dates are in the m/d/yyyy format rather than mm/dd/yyyy and they are being incorrectly converted with the day and month being switched around.
Is there a simple way to fix this issue ?
Many thanks
ScottHi Scott,
Based on your description, you want to format the data with m/d/yyyy or mm/dd/yyyy format to mm/dd/yyyy.
In this scenario, we can use Derived Column Transformation to convert the original format to mm/dd/yyyy format, then use the new column maps to the corresponding Destination column. The following expression is for your reference:
(DT_DBDATE)(RIGHT(Column,4) + "/" + (SUBSTRING(Column,2,1) == "/" ? "0" + SUBSTRING(Column,1,1) : SUBSTRING(Column,1,2)) + "/" + (LEFT(RIGHT(Column,7),1) == "/" ? "0" + LEFT(RIGHT(Column,6),1) : LEFT(RIGHT(Column,7),2)))
If there are any other questions, please feel free to ask.
Thanks,
Katherine Xiong
Katherine Xiong
TechNet Community Support -
How to get mm-dd-yyyy format in ssis
My destination is Oracle and i want the date to be in the below format while migrating data.
mm-dd-yyyy
SFHConsistent "MM/DD/YYYY"
format
(DT_DBTIMESTAMP)(SUBSTRING([date string], 7, 4) + "-" SUBSTRING([date string], 1, 2) + "-"
+ SUBSTRING([date string], 4, 2))
Refer the below link for more help on string conversions.
http://toddmcdermid.blogspot.ca/2008/11/converting-strings-to-dates-in-derived.html
Mudassar -
After working with flat files (especially text and CSV) for some time in my current role I have decided to come up with this little discussion which I believe may benefit peers who might not yet have come across some of the issues that I have raised in this
piece. This piece is just a summary of what I have thought would be useful hints for anyone to consider when they are working with CSV or text files. Everything in this writing is purely from my experience and I am discussing it at SSIS level. I believe most
of the actions can be applied across in SSMS when dealing with flat files there.
Flat files as destination file
Exporting data to flat file destination is relatively easy and straight forward. There aren’t as many issues experienced here as they are when one imports data from flat files. However, whatever one does here hugely impacts on how easy and straightforward
importing data down the line from your flat file that you create at this stage will be. There are a few things to note. When you open your Flat File Destination component, of the options that you will see – listed below is a discussion of some of them. I have
found it useful to take the actions which I have mentioned below.
Column names in the first row – If you want the column names to be in the first row on your file make sure that you always check the box with that option. SSIS does not do that for you by default.
Column delimiter – I always prefer to use Tab {t}. The default delimiter is Comma {,}. The problem that I have found with use of comma delimiters is that if the values have inherent commas within them the system does not always get it right
in determining where the column ends. As a result you may end up getting some rows with shifted and misplaced values from their original columns owing to the wrong column allocation by the system.
AlwaysCheckForRowDelimiters – this is a Flat File Connection Manager property. The default setting of this property is True. At one time I found myself having to use this after I faced a huge problem with breaking and misplacement of rows
in the dataset that I was dealing with. The problem emanated from the values in one of the columns. The offending column had values of varchar datatype which were presented in the form of paragraphs with all sorts of special characters within them, e.g.
This is ++, an example of what – I mean… the characters ;
in the dataset which gave me: nearly 100% ++ headaches – looked like {well}; this piece
OF: example??
You can see from the above italicised dummy value example what I mean. Values such as that make the system to prematurely break the rows. I don’t know why but the somehow painful experience that I had about this led me to the conclusion that I should not
leave the system to auto-decide where the row ends. As such, when I changed the property
AlwaysCheckForRowDelimiters from True to False, along with the recommendations mentioned in items 1 and 2 above, breaking and misplacement of rows was solved. By breaking I mean - you will find one row in a table being broken into two
or three separate rows in the flat file. This is carried over to the new table where that flat will is loaded.
Addendum
There is an additional option which I have found to work even better if one is experiencing issues with breaking of rows due to values being in the ‘paragraph’ format as illustrated above. The option for ‘paragraphed’ values which
I explained earlier works, but not always as I have realised. If that option does not work, this is what you are supposed to do
When you SELECT the data for export from your table, make your SELECT statement to look something like this
SELECT
ColumnName1,
ColumnName2,
ColumnName3,
REPLACE(REPLACE(OffendingColumnNameName,CHAR(10),''),CHAR(13),'')
AS OffendingColumnNameName,
ColumnName4
FROM
MyTableName
The REPLACE function gets rid of the breaks on your values. That is, it gets rid of the paragraphs in the values.
I would suggest use of double dagger column delimiters if using this approach.
Text or CSV file?? – In my experience going with the text file is always efficient. Besides, some of the things recommended above only work in text file (I suppose so. I stand to be corrected on this). An example of this is column delimiters.
Item 2 above recommends use of Tab {t} column delimiter whereas in CSV, as the name suggests, the delimiters are commas.
Flat files as source file
In my experience, many headaches of working with flat files are seen at importing data from flat files. A few examples of the headaches that I’m talking about are things such as,
Datatypes and datatype length, if using string
Shifting and misplacement of column values
Broken rows, with some pseudo-rows appearing in your import file
Double quotation marks in your values
Below I will address some of the common things which I have personally experienced and hope will be useful to other people. When you open your Flat File Source component, of the options that you will see – listed below is a discussion of some of them. I
have found it useful to take the actions which I have mentioned below.
Retain null values from the source as null values in the data flow – this option comes unchecked by default. From the time I noticed the importance of putting a check mark in it, I always make sure that I check it. It was after some of
my rows in the destination table were coming up with shifted and misplaced column values. By shifted and misplaced column values I mean certain values appearing under columns where you do not expect them, by so doing showing that purely the value has
been moved from its original column to another column where it does not belong.
Text qualifier – the default entry here is <none>. I have found that it is always handy to insert double quotes here (“). This will eliminate any double quotes which the system may have included at the time when the flat file was
created. This happens when the values in question have commas as part of the characters in them.
Column delimiter – this solely depends on the column delimiter which was specified at the time when the flat file was created. The system default is Comma {,}. Please note that if the delimiter specified here is different from the one in
your flat file the system will throw up an error with a message like “An error occurred while skipping data rows”.
Column names in the first data row – if you want the first row to be column names put a check mark on this option.
Datatypes and datatypes length
By default when you import a flat file your datatypes for all the columns come up as varchar (50) in SSIS. More often than not if you leave this default setup your package will fail when you run it. This is because some of the values in some of your columns
will be more than 50 characters, the default length. The resulting error will be a truncation error. I have found two ways of dealing with this.
Advanced – This is an option found on the Flat File Source Editor. Once this option is selected on your Flat File Source Editor you will be presented with a list of columns from your flat file. To determine your datatypes and length there
are two possible things that you can do at this stage.
Go column by column – going column by column you can manually input your desired datatypes and lengths on the Flat File Source Editor through the Advanced option.
Suggest types – this is another option under Advanced selection. What this option does is suggest datatypes and lengths for you based on the sample data amount that you mention in the pop-up dialog box. I have noticed that while this is
a handy functionality, the problem with it is that if some of the values from the non-sampled data have lengths bigger than what the system would have suggested the package will fail with a truncation error.
View code – this is viewing of XML code. If for example you want all your columns to be of 255 characters length in your landing staging table
Go to your package name, right click on it and select the option View code from the list presented to you. XML code will then come up.
Hit Ctrl + F to get a “Find and Replace:” window. On “Find What” type in
DTS:MaximumWidth="50" and on “Replace with:” type in
DTS:MaximumWidth="255". Make sure that under “Look in” the selection is
Current Document.
Click “Replace All” and all your default column lengths of 50 characters will be changed to 255 characters.
Once done, save the changes. Close the XML code page. Go to your package GUI designer. You will find that the Flat File Source component at this point will be highlighted with a yellow warning triangle. This is because the metadata definition has changed.
Double click the Flat File Source component and then click on Ok. The warning will disappear and you will be set to pull and load your data to your staging database with all columns being varchar (255). If you need to change any columns to specific data types
you can either use Data Conversion Component or Derived Column component for that purpose, OR you can use both components depending on the data types that you will converting to.
Dynamic Flat File Name and Date
Please see this blog
http://www.bidn.com/blogs/mikedavis/ssis/153/using-expression-ssis-to-save-a-file-with-file-name-and-date
There is so much to flat files to be discussed in one piece.
Any comments plus additions (and subtractions too) to this piece are welcome.
MpumeleloYou could create a
WIKI about this subject. Also see
http://social.msdn.microsoft.com/Forums/sqlserver/en-US/f46b14ab-59c4-46c0-b125-6534aa1133e9/ssis-guru-needed-apply-within?forum=sqlintegrationservices
Please mark the post as answered if it answers your question | My SSIS Blog:
http://microsoft-ssis.blogspot.com |
Twitter -
Expression is not executing.......
in the if loop im trying to add a date with a number... the expression i showed below is not executing...
DECLARE
EID VARCHAR2 (20);
DB DATE;
FN varchar2(100);
LN varchar2(20);
BL BOOLEAN := TRUE;
x number;
APP NUMBER;
REA VARCHAR2(200);
BEGIN
SELECT EMPNO,DOB,FNAME,LNAME
INTO EID,DB,FN,LN
FROM GENINFO
WHERE EMPNO=:P12_EMPNO AND DOB=:P12_DOB;
SELECT NVL(MAX(APP_NO),0)+1
into APP from leave_form;
SELECT REASON into REA from leave_form
WHERE EMP_NO=:P12_EMPNO;
:EMP_NO1:=EID;
:CREATED_BY1:=FN||' '||LN;
:APP_DATE1:=sysdate;
:APP_NO1:=APP;
:REASON1:=REA;
BL := TRUE;
:BLNF:=sys.DIUTIL.bool_to_int (BL);
--htp.prn(x);
EXCEPTION
when no_data_found then
BL := FALSE;
:BLNF:=sys.DIUTIL.bool_to_int (BL);
--htp.prn(x);
IF :P12_FDATE IS NOT NULL AND :P12_TDATE IS NOT NULL THEN
:P12_TDATE:=TO_CHAR(TO_DATE(':P12_FDATE','DD-MM-YYYY') + :P12_NO_OF_DAYS_REQ,'DD-MM-YYYY');-----this expression is not executing
INSERT INTO LEAVE_FORM(EMP_NO,APP_NO,APP_DATE,NO_OF_DAYS_REQ,FDATE,TDATE,LEAVE_TYPE,REASON) VALUES(:EMP_NO1+1,:APP_NO1,:APP_DATE1,:P12_NO_OF_DAYS_REQ,:P12_FDATE,:P12_TDATE,:P12_LEAVE_TYPE,:REASON1);
END IF;
END;
Edited by: 794244 on Feb 17, 2011 5:48 AMTry this...
DECLARE
EID VARCHAR2 (20);
DB DATE;
FN VARCHAR2 (100);
LN VARCHAR2 (20);
BL BOOLEAN := TRUE;
x NUMBER;
APP NUMBER;
REA VARCHAR2 (200);
BEGIN
SELECT EMPNO,
DOB,
FNAME,
LNAME
INTO EID,
DB,
FN,
LN
FROM GENINFO
WHERE EMPNO = :P12_EMPNO AND DOB = :P12_DOB;
SELECT NVL (MAX (APP_NO), 0) + 1 INTO APP FROM leave_form;
SELECT REASON
INTO REA
FROM leave_form
WHERE EMP_NO = :P12_EMPNO;
:EMP_NO1 := EID;
:CREATED_BY1 := FN || ' ' || LN;
:APP_DATE1 := SYSDATE;
:APP_NO1 := APP;
:REASON1 := REA;
BL := TRUE;
:BLNF := sys.DIUTIL.bool_to_int (BL);
--htp.prn(x);
EXCEPTION
WHEN NO_DATA_FOUND
THEN
BL := FALSE;
:BLNF := sys.DIUTIL.bool_to_int (BL);
--htp.prn(x);
IF :P12_FDATE IS NOT NULL AND :P12_TDATE IS NOT NULL
THEN
:P12_TDATE := TO_DATE(:P12_FDATE, 'DD-MM-YYYY') + :P12_NO_OF_DAYS_REQ; -----this expression is not executing
INSERT INTO LEAVE_FORM (EMP_NO,
APP_NO,
APP_DATE,
NO_OF_DAYS_REQ,
FDATE,
TDATE,
LEAVE_TYPE,
REASON)
VALUES (:EMP_NO1 + 1,
:APP_NO1,
:APP_DATE1,
:P12_NO_OF_DAYS_REQ,
:P12_FDATE,
:P12_TDATE,
:P12_LEAVE_TYPE,
:REASON1);
END IF;
END;Cheers
Ben -
13 months back from the Chosen Month
Hi, I am using SAP BW Query as Source for my Universe and i dont have any BI Variables in the Query.
My Month and Year Objects is [0CALMONTH] it will display like JAN 2009.
here the requirement is i am using this dimension as FILTER in my Query Panel. i have to get 13 months back from the chosen month and year.
Suppose the User has chose JAN2009 in Prompt. the report should disaplay the months from JAN 2009 to Jan2008.
Can anyone please Tell me how to construct my Prompt in the Universe to get 13 months.
i know its very easy in Relational world but here the problem is i am using SAP query as backend.
So Need MDX solution for this.
Thanks,
KalyanHi,
It is possible to define such a filter using MDX expression.
Thi is a little bit tricky because calculated members defined in MDX with SAP is limited to numeric expressions and supports very few string expressions.
Moreover the result of any calculated expression MUST be numeric.
So, in order to build the filter we have to use
[0CALMONTH]
display attributes:
[20CALYEAR]
[20CALMONTH2]
For instance you can build a calculated expression that will return the YEAR and the MONTH of the characteristic using the following format: YYYY.MM:
<EXPRESSION>([0CALMONTH].[20CALYEAR] + ( [0CALMONTH].[20CALMONTH2] /100))</EXPRESSION>
Now you can define a filter taht includes a promppt where the user can enter manually (in free mode) a YEAR / MONTH like this: YYYY.MM
Here is the code:
<FILTER EXPRESSION=" IIF ( ([0CALMONTH].[20CALYEAR] + ( [0CALMONTH].[20CALMONTH2] /100)) < @Prompt('Year/Month (YYYY.MM)','N',,mono,free,persistent)-1, 0, IIF ( ([0CALMONTH].[20CALYEAR] + ( [0CALMONTH].[20CALMONTH2] /100)) <= @Prompt('Year/Month (YYYY.MM)','N',,mono,free,persistent),1,0)) "><CONDITION OPERATORCONDITION="Equal"><CONSTANT CAPTION="1"/></CONDITION></FILTER>
This filter returns "1" when the 0CALMONTH value is between the date entered by the user minus 13 months, otherwise the filter returns "0".
Didier. -
Adding complicated selections to Eclipse Link CriteriaBuilder ?
Hi all,
Can any body suggest how to add
select case when to_char(trunc(TO_DATE ('03-APR-2015','DD-MM-YYYY'), 'mm'), 'FMDAY') = 'SUNDAY' then to_number(to_char(TO_DATE ('03-APR-2015','DD-MM-YYYY'), 'W'))+1
else ceil((to_char(TO_DATE ('03-APR-2015','DD-MM-YYYY'), 'dd') + 1 - to_char(next_day(trunc(TO_DATE ('03-APR-2015','DD-MM-YYYY'), 'mm'), 'SUNDAY'), 'dd'))/7)+1
end week_no
from dual
query to Eclipse Link CriteriaBuilder
i am able to add distinct(to_char(sum(datecolumn,number),'W-MM-YYYY')) like
Expression sum = cb.sum(CriteriaQueryUtils.getPath(rt, breakupFields), cb.literal(miliSecToAdd));
Expression<String> literal = cb.literal("W-MM-YYYY");
Expression<String> functionselectclause = cb.function("TO_CHAR", String.class, sum,literal);
return query.select(functionselectclause ).distinct(true).where(p).orderBy(orders);
but need to know how to add case when else to CriteriaBuilder
Thank you
NagappaWrong forum!
Please mark the question ANSWERED and repost it in an Eclipse forum. -
Hi we run 2012 and I'm a little concerned about an error i see in my project's error list when i debug. It looks like the following and doesnt always seem to be for the same sub pkg. And doesnt seem to affect whether the sub pkg works in
debug. What is this? Every other sub pkg has the same connection. In the few sub pkgs I've seen it for so far, I've looked at properties and the xml docs themselves and nothing seems to stand out as being corrupted.
Error 82 Error loading Recordxxxx.dtsx: The connection type "OLEDB" specified for connection manager "dw BIStarSchema" is not recognized as a valid connection manager type. This error is returned when an attempt is made to create
a connection manager for an unknown connection type. Check the spelling in the connection type name. c:\Users\yyyy\My Documents\ssis\dw\LoadBIprototype\LoadBIprototype\Recordxxxx.dtsx 1 1.the post u referenced seems to address a general/overall failure in the same address space as a pkg is running.
My problem occurs on only some subpkgs and not others as I'm debugging a master and its associated sub pkgs. But the problem occurs on the very same conn that other subpkgs have no problem with.
Interestingly it seems to occur only in debug mode. And also, debug continues anyway and it appears the subpkg(s) for which the error is about seem to run successfully anyway and overall execution continues. -
Expression help in SSIS!!!
Hi,
I have the below expression:
ISNULL(@[User::PROCESS_DATE]) || TRIM (@[User::PROCESS_DATE]) == "" ? "1900-01-01" : (@[User::PROCESS_DATE]) == SUBSTRING(@[User::PROCESS_DATE],1,4) + "-" + SUBSTRING(@[User::PROCESS_DATE],5,2) + "-" + "1"
i get the following error:
The data types "DT_WSTR" and "DT_BOOL" are incompatible for the conditional operator
The variable Process_date is char(6) and the destination column is datetime..SSIS JOOST,
the above expression works fine when the value is 201105 but for null or blank values its throwing an error: for empty string
ADDITIONAL INFORMATION:
Error code 0x80020005 occurred attempting to convert from data type DT_WSTR to data type DT_DBTIMESTAMP.
Casting expression "(SUBSTRING(@[User::PROCESS_DATE],1,4) + "-" + SUBSTRING(@[User::PROCESS_DATE],5,2) + "-1")" from data type "DT_WSTR" to data type "DT_DBTIMESTAMP" failed with error code 0xC00470C2.
For NULL Values:
ADDITIONAL INFORMATION:
Error code 0x80020005 occurred attempting to convert from data type DT_WSTR to data type DT_DBTIMESTAMP.
Casting expression "(SUBSTRING(@[User::PROCESS_DATE],1,4) + "-" + SUBSTRING(@[User::PROCESS_DATE],5,2) + "-1")" from data type "DT_WSTR" to data type "DT_DBTIMESTAMP" failed with error code 0xC00470C2.
I used expression editor tool for evaluating this expression -
Hello,
I first installed SQL Serrver Express Edition 2008 with Advanced Services (As a part of some client's software)
Now I have isntalled SQL Server Developer Edition 2008, by selecting ALL features and client tools.
Now, with BIDS, I can start SSRS and SSAS Projects, but I can't start SSIS Projects.
I am getting below error message :
To design Integration Services packages in Business Intelligence Development Studio, Integration Services has to be installed by one of these editions of SQL Server 2008: Standard, Enterprise, Developer, or Evaluation. To install Integration
Services, run SQL Server Setup and select Integration Services.
Please let me know how do I resolve this issue "Without un-installing Express Edition installed earlier on my machine"
Please help !
Thanks
DPThis is a common pitfall with the SQL Express editions. It cannot co-exist. You
need to un-install the "Express".
What works is having a VM with Express Tools if I you (strangely) need them.
Arthur My Blog -
SSIS Data Flow task using SharePoint List Adapter Setting SiteUrl won't work with an expression
Hi,
I'm trying to populate the SiteUrl from a variable that has been set based on a query to a SQL table that has a URL field. Here are the steps I've taken and the result.
Created a table with a url in it to reference a SharePoint Task List.
Created a Execute SQL Task to grab the url putting the result set in a variable called SharePointUrl
Created a For Each container and within the collection I use the SharePointUrl as the ADO object source variable and select rows in the first table.
Still in the For Each container within the Variable mappings I have another Package Variable called PassSiteUrl2 and I set that to Index 0 or the value of the result set.
I created a script task to then display the PassSiteUrl2 variable and it works great I see my url
This is where it starts to suck eggs!!!!
I insert a Data Flow Task into my foreach loop.
I Insert a SharePoint List Adapter into my Data Flow
Within my SharePoint List Adapter I set my list to be "Tasks", My list view to be "All Tasks" and then I set the url to be another SharePoint site that has a task list just so there is some default value to start with.
Now within my Data Flow I create an expression and set the [SharePoint List Source].[SiteUrl] equal to my variable @[User::PassSiteUrl2].
I save everything and run my SSIS package and it overlays the default [SharePoint List Source].[SiteUrl] with blanks in the SharePoint List Adapter then throws the error that its missing a url
So here is my question. Why if my package variable displays fine in my Control Flow is it now not seen or seen as blanks in the Data Flow Expression. Anyone have any ideas???
Thanks
Donald R. LandryThanks Arthur,
The scope of the variable is at a package level and when I check to see if it can be moved Package level is the highest level. The evaluateasexpression property is set to True. Any other ideas?
I also tried to do the following. Take the variable that has the URL in it and just assign it to the description of the data flow task to see if it would show up there (the idea being the value of my @[User::PassSiteUrl] should just show in the
description field when the package is run. That also shows up blank.
So i'm thinking its my expression. All I do in the expression is set [SharePoint List Source].[SiteUrl] equal to @[User::PassSiteUrl] by dragging and dropping the variable into the expression box. Maybe the expression should be something
else or is their a way to say @[User::PassSiteUrl] = Dts.Variables("User::PassSiteUrl2").Value.ToString()
In my script task I use Dts.Variables("User::PassSiteUrl2").Value.ToString() to display
the value in the message box and that works fine.
Donald R. Landry -
SSIS Variable Expression not Picking Up the value dynamically set from a Foreach Loop container
Hello, everyone,
I have three variables in my SSIS package:
1) ReportLoc that holds a file path (c:\test, not changed)
2) ReportFileName that holds a file name that get assigned in a Foreach Loop container (file1, file2, etc.)
3) OutputFilePath that is the full file pathname, set in the expression: @[User::LocalPath] + "\\" + @[User::ReportFileName]
All three variable have the package scope.
I expect OutputFilePath will be asigned values like c:\test\file1, c:\test\file2, etc.
However, it alwasy remains an empty string.
Anything I did wrong? Any help and information is greatly appreciated.
RegardsThat's it -- I forgot to set Evaluate as Expression to true.
Thank you very much for your reply and solution! Really appreciate it!
Regards. -
SSIS "XML Source Adapter" can't make XSD location an expression
I am using the "XML Source Adapter" in an SSIS package.
I notice that although you can specify the XML filename as an expression, the XSD appears to have to be a fixed file path.
This is a problem for me since the path for the XSD is different in my development than it will be in production (in production it's on drive E:, which I don't have).
I'd like to have the file location specified in the config file, but since I can't make it an expression how can I do that?
Also, since they don't have Connection Managers I can't switch DelayValidation on.
Thanks.Hi John,
Here is my pevious post
I have about 400 xml files with me and all this data has to be loaded in about 30 tables, Basically have 30 different varities of xml files and matching 30 xsd files. We were trying to load all this using "Data Flow Task" and "XML Source". Using
FOR Each Loop passing appropriate XML File and XSD to Data Flow task and load it in one shot. Rather than having 30 different Data Flow tasks. Is there any other way, we can accomplish this task using a loop and dynamically passing the different files.
You have suggested to follow the URL
There's some example code here for package generation here:
http://sqlsrvintegrationsrv.codeplex.com/releases/view/17647
Everywhere I see, they are suggesting to use Flat File or Excel data examples. Do you have any posting that can help me to use XML file as a dynamic input file for XML Source.
If anyone has any code samples how we can use XML files as dynamic source for XML Source task to import data into SQL Sever, that would be really appreciated.
Thanks -
SSIS: Using CASE Statement Within A Derived Column Transformation Expression
The following is my Data Flow:
Ole DB Source > Copy Column > Derived Column >Ole DB Command
My OLE DB Source has the following SQL command task:
SELECT *
FROM Repair R
LEFT OUTER JOIN Vehicle V
ON R.SN = V.SN
AND R.Reg = V.Reg
LEFT OUTER JOIN Product P
ON R.PID = P.PID
This yields a column of concern for me named PartNumber, which are represented by the following 2 formats:
The following are my Copied Columns:
Input Column = PartNumber
Output Alias = Copy of PartNumber
The following are my Derived Column expressions:
Derived Column Name Derived Column Expression
Name Replace 'PartNumber' LEFT(PartNumber,FINDSTRING(PartNumber,"-",1) - 1)
Copy of Name Replace 'Copy of PartNumber' RIGHT([Copy of PartNumber],LEN([Copy of PartNumber]) - FINDSTRING([Copy of PartNumber],"-",1))
So My PartNumber Column is Replaced with ######### of type
string and the Copy of PartNumber column is replaced with
#### of type int
As I stated earlier PartNumber also is in the format of %-%-% which raises the following question:
How can I replace PartNumber Column with NULL if in format of
%-%-% and take the PartNumber and put it in new column named
SubPart while keeping all the logic within SSIS objects?
So in essence I want to do something like the following:
PartNumber = CASE
WHEN 'PartNumber' LIKE '%-%-%'
THEN ABC = PartNumber AND PartNumber IS NULL
END
I have tried the case statement in a Derived Column expression and is not working. Would I add the
CASE statement to the SQL command task in my OLE DB Source?
I hope this question is concise for you.If it must be in SSIS, I would put a derived column stage earlier in the process to do my check for me. Then in the second derived column stage do the check against each output column (part, subpart, copy of part) to decide which way it goes
PS Not sure if it's a 2012 function but SSIS has a function called TOKEN that will allow you to pull your subparts for you rather than the left/right you are doing -
Hi All,
Please help on the SSIS issue.
i have a package.It contains Foreach loop container,Inside foreach loop container,I have one Dataflow task(Inside dataflow task,i am using Oledb source(table),I am populating
Data into Flat file)with flat file name YYYYMMDD_HH24MISS.txt. After i want to Zip that file with same file name.
YYYYMMDD_HH24MISS.txt.zip,After that i want copy that Zip file into another location.
Thanks in advance...Hi BADDULAS,
According to the screenshot in your initial post, you are using an Execute Process Task to compress the .txt file generated by the Data Flow Task. Let’s assume that you are using the common free software 7-Zip as the executable of the Execute Process Task,
then you can refer to the following blog:
http://sqlage.blogspot.com/2013/12/ssis-how-to-compress-and-archive-file.html
To get the expected name for the txt file, you can create another String type SSIS variable @[User::FileName] using the following expression (set EvaluateAsExpression property of the variable to True):
REPLACE(SUBSTRING((DT_STR,30,1252)GETDATE(),1,10),"-","")+"_"+ SUBSTRING((DT_STR,30,1252)GETDATE(),12,2) + "24MISS.txt"
The FileName variable should be used by the ConnectionString property of the Flat File Connection Manager that is used by the Flat File Destination in the Data Flow Task.
Besides, the variable FileName should also be used in the expression of the VarSourcePath variable and the VarArchivePath variable as follows:
VarSourcePath: “C:\\Temp\\Source\\” + @[User::FileName]
VarArchivePath: “C:\\Temp\\Destination\\” + REPLACE(@[User::FileName], ”.txt”, “”)
Regards,
Mike Yin
TechNet Community Support
Maybe you are looking for
-
after last HP printer update, my hp business 2800 won't print but instead crashes all programs. OS 10.6.8.
-
Cisco wastefulness : 3845 fan module
We had a fan fail on our 3845 edge router. No big deal; the other two fans kept the temperature easily within spec, and the module is a two minute hot swap. I opened a ticket, they sent me a replacement. Simple. (In fact, the router install docs note
-
Is it possible to buy a book with more than 100 pages?
I have a wedding album that is 237 photos [reduced from >700!] but I need more than the maximum pages allowed. Any ideas please? Grateful thanks, Bob
-
How can build a separate java application?
We know we can build any C or C++ application and run it on Unix OS by command "XX &" . If I am going to build a non-stop background process using java, yet must I run it by command "java XX &"? I want to know how can I build a process and run it lik
-
Forms 6i error on Oracle 7.3.4
Hi I have installed firms 6i on a sun box with Oracle 7.3.4. while running a form using f60runm and the proper string, the form starts and displays the window i can click and the data is also populated from the database, the problem is the function k