千家信息网

插入数据时有特殊字符&且后面有字符被误认为变量名(inser

发表于:2025-02-01 作者:千家信息网编辑
千家信息网最后更新 2025年02月01日,当出现如下报错时请检查你的SQL,肯定是值里面有特殊字符&。如果是没有用的直接删除就可以了,如果有用那么就需要处理一下了(默认插入值中带&符号,且后面有字符串,就会被误认为变量名)。处理方法(意思是要
千家信息网最后更新 2025年02月01日插入数据时有特殊字符&且后面有字符被误认为变量名(inser

当出现如下报错时请检查你的SQL,肯定是值里面有特殊字符&。如果是没有用的直接删除就可以了,如果有用那么就需要处理一下了(默认插入值中带&符号,且后面有字符串,就会被误认为变量名)。
处理方法(意思是要把&用单引号单独引起来,然后用拼接的方式来处理这一列)

将    &    替换为    '||'&'||'

在plsql developer上回出现如下图提示

在sqlplus就是如下提示

SQL> insert into va values('T&K/泰恩康');输入 k 的值:  只是个符号我不想要赋值。。。。原值    1: insert into va values('T&K/泰恩康')新值    1: insert into va values('T只是个符号我不想要赋值。。。。/泰恩康')已创建 1 行。SQL> select * from va;FS_FAILOVER_OBSERVER_HOST--------------------------------------------------------------------------------T只是个符号我不想要赋值。。。。/泰恩康

使用单引号和拼接方法,将&和被误认为变量名的字符隔离开拼接处理。

SQL> insert into va values('T'||'&'||'K/泰恩康');已创建 1 行。SQL> select * from va;FS_FAILOVER_OBSERVER_HOST--------------------------------------------------------------------------------T&K/泰恩康

其实后面跟的是空格就不会有影响,可以直接插入。

SQL> insert into va values('a7 & >d');已创建 1 行。SQL> select * from va;FS_FAILOVER_OBSERVER_HOST--------------------------------------------------------------------------------a7 & >d
0