WEB开发网
开发学院数据库Oracle 学在oracle数据库中插入特殊符号 阅读

学在oracle数据库中插入特殊符号

 2008-12-17 13:06:12 来源:WEB开发网   
核心提示:oracle 特殊字符的插入环境配置:server:linux9db server: oracle817.4client os:windows2000 prooracle client: oracle 9i今天一个同事运行脚本,向数据库中插入数据.数据的格式如下:SQL> ed已写入文件 afiedt.buf1*

oracle 特殊字符的插入

环境配置:

  server:linux9
  db server: oracle817.4
  client os:windows2000 pro
  oracle client: oracle 9i

今天一个同事运行脚本,向数据库中插入数据.数据的格式如下:

SQL> ed

已写入文件 afiedt.buf

  1* insert into dept values(92,'Jackey&&jjjdd','HZ');
  SQL> /
  输入 jjjdd 的值: dd
  原值 1: insert into dept values(92,'Jackey&&jjjdd','HZ');
  新值 1: insert into dept values(92,'Jackeydd','HZ');
  insert into dept values(92,'Jackeydd','HZ');
  *
  ERROR 位于第 1 行:
  ORA-00911: invalid character

结果发现到数据库中的数据和插入的数据不一致.主要表现是在插入的字符串的中如果包括了'&',

则'&'后面的字符就会丢失.

后来发现了造成这种情况的原因.因为'&'在sqlplusw中被定义为自定义变量标示符合,因此'&'

符合后面的字符自然被解析为变量名字.因为没有输入变量的值,所以'&'后面的内容被认为是空的了.

于是,我检查了一下session中的设置发现.

----------------------------------------------------------------------------------

已用时间: 00: 00: 00.00

  SQL> show all
  appinfo为OFF并且已设置为"SQL*Plus"
  arraysize 15
  autocommit OFF
  autoprint OFF
  autorecovery OFF
  autotrace OFF
  blockterminator "." (hex 2e)
  btitle OFF and 为下一条 SELECT 语句的前几个字符
  cmdsep OFF
  colsep " "
  compatibility version NATIVE
  concat "." (hex 2e)
  copycommit 0
  COPYTYPECHECK 为 ON
  define OFF
  describe DEPTH 1 LINENUM OFF INDENT ON
  echo OFF
  editfile "afiedt.buf"
  embedded OFF
  escape OFF
  用于6或更多行的 FEEDBACK ON
  flagger OFF
  flush ON
  heading ON
  headsep "|" (hex 7c)
  instance "local"
  linesize 500
  lno 9
  loboffset 1
  logsource ""
  long 80
  longchunksize 80
  markup HTML OFF HEAD "<style type='text/css'> body {font:10pt Ar
  newpage 1
  null ""
  numformat ""
  numwidth 10
  pagesize 14
  PAUSE 为OFF
  pno 1
  recsep WRAP
  recsepchar " " (hex 20)
  release 801070400
  repfooter OFF and 为 NULL
  repheader OFF and 为 NULL
  serveroutput OFF
  shiftinout INVISIBLE
  showmode OFF
  spool OFF
  sqlblanklines OFF
  sqlcase MIXED
  sqlcode 0
  sqlcontinue "> "
  sqlnumber ON
  sqlpluscompatibility 8.1.7
  sqlprefix "#" (hex 23)
  sqlprompt "SQL> "
  sqlterminator ";" (hex 3b)
  suffix "sql"
  tab ON
  termout ON
  time OFF
  timing ON
  trimout ON
  trimspool OFF
  ttitle OFF and 为下一条 SELECT 语句的前几个字符
  underline "-" (hex 2d)
  USER 为"SCOTT"
  verify ON
  wrap : 行将为已换行
  SQL>

1 2  下一页

Tags:oracle 数据库 插入

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接