database - 数据库奇怪的行为

标签 database oracle oracle9i

我遇到了以下令人困惑的问题:

通过 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

有什么建议吗?

最佳答案

network_template 字段中的值不仅仅是'11',而是'11' || chr(13).
所以你在末尾有 carrige return 字符。

您可以通过以下方式修复数据:

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

但最好先检查一下为什么要添加它....

关于database - 数据库奇怪的行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12246799/

相关文章:

database - Liquibase 数据类型映射文档

java - 如何在 Hibernate 中模拟复合键?

sql - Oracle 对来自 PostgreSQL 的 unnest 数组的模拟

sql - 在此上下文中不允许表、 View 或序列引用 'SEQUENCE.NEXTVAL'

sql - 在 all_views 上过滤 "text"列

java - 在DB中删除或插入后如何触发Jtable更新?

android - 在 Android 中使用 5Mill 条目占用 0.5GB 的 SQLite 数据库是否可行?

linux - 使用 shell 脚本为 oracle db 杀死长时间运行的多个 session

尝试连接到 Oracle 数据库时出现 java.sql.SQLException

c# - 有人如何处理默认日期时间