1

次の紛らわしい問題が発生しました。

DB テーブルは、CSVファイルといくつかのKSHスクリプトによって更新されました。

#!/bin/ksh

moduleDir=$ACS_INSTALL/FMC_TER_AM_028/Database
logFile=$moduleDir/install_scripts/`basename $0`_$(date '+%Y%m%d_%H%M').log

(
  cp -ri $moduleDir/ntscripts/datafiles/* $PROVHOME/database/ntscripts/datafiles
  echo "\n***********************"
  echo "* New/Modified files: *"
  echo "***********************"
  find $moduleDir/ntscripts/datafiles -type f | xargs ls -l
) 2>&1 | tee $logFile

echo "\nInstallation of Database completed\n"

更新は、次のINSERTクエリと同じです (等しいということは、視覚的な結果が下のINSERTコマンドと同じであることを意味します) 。

INSERT INTO tp_nt_mapping (TARIFF_PLAN, SERVICE_TYPE, NETWORK_TEMPLATE, IN_CREATE, IN_DELETE)
VALUES (171, 'Postpaid', '11', '', '')

次のSELECTコマンドを使用している場合:

SELECT * FROM tp_nt_mapping ORDER BY tariff_plan DESC

新しく挿入されたレコードを確認できますが、次のSELECTクエリのいずれかを試してみると、そうではありません。

SELECT * FROM tp_nt_mapping WHERE network_template = 11 ORDER BY tariff_plan DESC
SELECT * FROM tp_nt_mapping WHERE network_template = '11' ORDER BY tariff_plan DESC

助言がありますか?

4

1 に答える 1

3

フィールドの値network_templateはただではありませ'11''11' || chr(13)
したがってcarrige return、最後に char があります。

次のようにしてデータを修正できます。

update tp_nt_mapping 
set network_template = replace(network_template, chr(13), '')

しかし、そもそもなぜそれが追加されたのかを確認してください....

于 2012-09-03T12:59:18.527 に答える