我遇到了以下令人困惑的问题:
通过 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
有什么建议吗?
答案 0 :(得分:3)
network_template
字段中的值不仅仅是'11'
,还有'11' || chr(13)
所以你最后有carrige return
字符。
您可以通过执行以下操作来修复数据:
update tp_nt_mapping
set network_template = replace(network_template, chr(13), '')
但最好先检查一下为什么它被添加到第一位......