現在、既存の SSIS パッケージを更新しています。現在のパッケージは、IT 部門が提供する Excel スプレッドシートからデータを取得します。コンピューターのマシン名を一覧表示し、ライセンス レポート用にカウントします。
現在、マシン名の最初の部分からジョブ (派生列) の M (モバイル) または D (デスクトップ) を取り除いて、レポートに必要なユーザー名だけを返すようにしています。
MBRUBAKERBR => BRUBAKERBR
しかし、当社の IT 部門は Windows 7 を実装したばかりで、それに伴い新しい命名規則が導入されました。現在、更新されたすべてのマシンの最後に追加された 76A、B、C、または D があります。マシンが更新されていない場合は、古い命名規則が使用されます (上記を参照)。
XP にとどまらなければならないマシンもあり、それらの名前は、末尾に X3A、B、C、または D が付くように更新されています。
MBRUBAKERBR76A or DBRUBAKERX3C
必要なのは、名前の最後の部分を削除して、レポート用にユーザー名を取得することです。
問題は、LEFT、RIGHT、LTRIM、または RTRIM 式を使用できないことです。これは、一部のコンピューター名の前に M または D しかないためです (まだアップグレードされていないため)。
このパッケージを再構築せずにこれらの文字を削除するにはどうすればよいですか?
更新: M と D を削除した既存の式を更新したいと思います。使用している式は次のとおりです。
SUBSTRING(Name,2,50)
これは、SSIS パッケージの派生列にあります。
サンプルデータに関しては、ここに入っているように見えます.
| Name |
| MBrubakerBR76A |
| MBROCKSKX3A |
| DGOLDBERGZA |
| MWILLIAMSEL |
| DEASTST76C |
| DCUSICKEVX3D |
これは返して欲しいものです。
| Name |
| BRUBAKERBR |
| BROCKSK |
| GOLDBERGZA |
| WILLIAMSEL |
| EASTST |
| CUSICKEV |
さらに情報や例が必要な場合はお知らせください。