好的 - 我需要來自Perl Guru的幫助。一位同事向我提供了他們支持的Perl應用程序的代碼,以及它在將數據寫入Oracle之前對值進行編碼的方式。不要問我爲什麼他們這樣編碼(似乎是特殊字符)。這些值正在寫入Oracle中的CLOB。我需要一個等效的解碼器用於SQL Server中的SSIS包。將Perl腳本翻譯成T-SQL
基本上我正在使用SSIS包從Oracle數據庫讀取數據,並且需要對這些值進行解碼。單詞之間的「+」符號很容易替換聲明(不確定這是最好的方式,但似乎到目前爲止工作)。因爲我的Perl腳本技能是有限的(是的,我已經做了一些閱讀,但並不像我想的那麼容易,因爲我不太瞭解Perl)。我只對解碼未編碼的字符串感興趣。
順便說一句,我知道%29等於一個「)」符號。看起來正在使用正則表達式,但我不太熟練使用這個(我知道我需要學習它)。
sub decodeValue($)
{
my $varRef = shift;
${$varRef} =~ tr/+/ /;
${$varRef} =~ s/%([a-fA-F0-9]{2})/pack("C",hex($1))/eg;
${$varRef} =~ tr/\cM//;
${$varRef} =~ s/"/\"/g;
return;
}
sub encodeValue($)
{
my $varRef = shift;
# ${$varRef} =~ tr/ /+/;
${$varRef} =~ s/"/\"/g;
${$varRef} =~ s/'/\'/g;
${$varRef} =~ s/(\W)/sprintf("%%%x", ord($1))/eg;
return;
}
太多的信息,把它歸結爲小樣本輸入,需要的輸出從相同的輸入,當前代碼,當前輸出/錯誤信息和關於你困惑的地方的最小評論。祝你好運。 – shellter
請注意帖子底部的標籤。您在創建問題時設置它們(如果您不花時間查看,則網站「猜測」幷包含不相關的網站)。你有「甲骨文」,我會繼續和刪除,但這是你的工作,當你發佈一個問題! – mathguy