困惑的事情

吉普赛的歌 2019-09-30 10:29:10
USE tempdb
GO
IF OBJECT_ID('[dbo].[html_helper_data]') IS NOT NULL
DROP TABLE [dbo].[html_helper_data]
GO
CREATE TABLE [dbo].[html_helper_data](
[id] [int] IDENTITY(1,1) NOT NULL,
[theChar] [varchar](5) NOT NULL,
[decStr] [varchar](10) NOT NULL,
[escapeStr] [varchar](10) NOT NULL,
CONSTRAINT [PK_html_helper_data] PRIMARY KEY CLUSTERED
(
[id] ASC
)
)
GO
SET NOCOUNT ON;
INSERT INTO dbo.html_helper_data(theChar,decStr,escapeStr) VALUES('<','','<');
INSERT INTO dbo.html_helper_data(theChar,decStr,escapeStr) VALUES('>','','>');

DECLARE @strHtml NVARCHAR(MAX)
SET @strHtml='<p>'
DECLARE @theChar VARCHAR(20),@escapeStr VARCHAR(20);
SELECT @escapeStr=escapeStr,@theChar=theChar FROM tempdb.dbo.html_helper_data WHERE theChar='<'

SELECT @escapeStr AS escapeStr
,@theChar AS theChar
,@strhtml AS strHtml
,REPLACE(@strHtml,@escapeStr,@theChar) AS result;

上面的代码非常简单,结果如下:

可以看到 < 号被替换了。
---------------------------------------------- 分隔线 -----------------------------------------
但是我在正式库中的表是一样的, 就替换不了:

代码几乎是一模一样的,只是数据表从另一个库的表中取出来了。
但没有替换。
哪位大神有这方面的经验, 指点一下, 多谢!
...全文
468 27 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
27 条回复
切换为时间正序
请发表友善的回复…
发表回复
吉普赛的歌 2019-10-05
  • 打赏
  • 举报
回复
引用 18 楼 SuperDay 的回复:
这么说还是编码的问题咯?搞定了就好
不是编码问题
吉普赛的歌 2019-10-05
  • 打赏
  • 举报
回复
引用 25 楼 陈柏祁 的回复:
编码没问题吗?你这个最好自己的库才试的出来
不是编码问题。 给了下载地址你自己可以试
陈柏祁 2019-10-05
  • 打赏
  • 举报
回复
编码没问题吗?你这个最好自己的库才试的出来
sichuanwww 2019-10-03
  • 打赏
  • 举报
回复
铖邑 2019-10-03
  • 打赏
  • 举报
回复
楼主真够积极的,一大早就开始忙活了
铖邑 2019-10-03
  • 打赏
  • 举报
回复
感谢楼主,这是我在这个板块得到的第一个分数
铖邑 2019-10-02
  • 打赏
  • 举报
回复
这么说还是编码的问题咯?搞定了就好
铖邑 2019-10-02
  • 打赏
  • 举报
回复
引用 19 楼 砸死牛顿的苹果 的回复:
大过节的~你们真努力~
没什么,不喜欢过节,感觉过节时候整个节奏都变了
吉普赛的歌 2019-10-02
  • 打赏
  • 举报
回复
引用 19 楼 砸死牛顿的苹果 的回复:
大过节的~你们真努力~
节日快乐!
  • 打赏
  • 举报
回复
大过节的~你们真努力~
吉普赛的歌 2019-10-01
  • 打赏
  • 举报
回复
把这个表提出来了, 下面是云盘地址: https://pan.baidu.com/s/1S3w7kAnb-FQPHs0bR7PRvQ 提取码:dhnm 注:SQL Server2017 版。 你提的其实也有一定道理, 我试了一下在其它库按我的脚本插入进去的都能用, 但那个库就是不行。可能是我的原始表的数据哪里有问题, 所以我把数据库备份放出来了, 让大伙试验方便吧。 虽然你没有解决我的问题, 但这大过节的帮忙也很暧心, 辛苦了
铖邑 2019-10-01
  • 打赏
  • 举报
回复
今天csdn🈶️抽风了,你@我都收不到信息
铖邑 2019-10-01
  • 打赏
  • 举报
回复
可能说话方式不好,请见谅
铖邑 2019-10-01
  • 打赏
  • 举报
回复
让我怎么说呢?哎呀,你那个select根本就不是从表里面出来的好不好?好好看看,我认为我已经看得很仔细了。有时候突然就会这样子,有个盲区,后面想想好傻,这是我经常有的经验
吉普赛的歌 2019-10-01
  • 打赏
  • 举报
回复
不要纠结插入到哪里。只是为了省事, 没有去掉那块而已。 正式库当然也是有数据的。 因为变量 @theChar, @escapeStr 是从select 正式库的表中得到的, 如果变量 @theChar, @escapeStr 没有得到值, 最后的select 不会有结果。
铖邑 2019-10-01
  • 打赏
  • 举报
回复
有问题肯定都是要分开排查咯,这样就可以确定哪一部分有没问题,最后再定位到出问题的那部分。如果不能一下子就看出问题所在,逐个排查也是一种办法
铖邑 2019-10-01
  • 打赏
  • 举报
回复
我没说错啊,你insert的是tempdb,但是select的是正式库,难道你原来就有那两条记录吗?我疑惑的就是这个
吉普赛的歌 2019-10-01
  • 打赏
  • 举报
回复
引用 3 楼 SuperDay 的回复:
不对啊?楼主,你不是用tempdb吗?还需要打码?你插入数据的又不是正式库!
你的观察不够仔细。 tempdb 正常, 正式库不正常。打码的是正式库, tempdb 只是用来对比的。 取出来的核对你觉得有什么不一样? 因为是根据 where 取出来的, 如果 !='<' 变量会得不到结果, 得到的结果又 select 出来了。
铖邑 2019-10-01
  • 打赏
  • 举报
回复
不对啊?楼主,你不是用tempdb吗?还需要打码?你插入数据的又不是正式库!
铖邑 2019-10-01
  • 打赏
  • 举报
回复
先用常量查询一下,然后把你那个select查出来的核对一下,会不会一样
加载更多回复(7)

22,300

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧