??xml version="1.0" encoding="utf-8" standalone="yes"?>青草久久精品亚洲综合专区,国产精品亚洲а∨无码播放麻豆,亚洲av日韩av高潮潮喷无码http://www.tkk7.com/shmily432685/category/4005.htmlzh-cnWed, 17 Oct 2007 00:40:57 GMTWed, 17 Oct 2007 00:40:57 GMT60mysql快速批量导入文本数?/title><link>http://www.tkk7.com/shmily432685/archive/2007/10/16/153329.html</link><dc:creator>闉|</dc:creator><author>闉|</author><pubDate>Tue, 16 Oct 2007 09:10:00 GMT</pubDate><guid>http://www.tkk7.com/shmily432685/archive/2007/10/16/153329.html</guid><wfw:comment>http://www.tkk7.com/shmily432685/comments/153329.html</wfw:comment><comments>http://www.tkk7.com/shmily432685/archive/2007/10/16/153329.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.tkk7.com/shmily432685/comments/commentRss/153329.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/shmily432685/services/trackbacks/153329.html</trackback:ping><description><![CDATA[<p>q日有一文本文gQ数据格式是以tab分割。数据量有数千万条数据,需要导入mysql数据库中Q通过传统的方式进行拷贝到数据库中Q需要花费很多天旉Q中间也会出现很多错误,未必能导入成功?br /> 使用Qload data local infile "本地路径" into table 表名命o方式q行导入Q?0w条数据也只需要花费几U钟旉Q可中文无法导入?br /> 仔细分析了一下:<br />        建库旉用utf8~码Q表也是utf8~码。对中文应该是支持的。排除数据库的问题?br />        只能从要导入的文本文件考虑Q将其编码用ultraEdit转换~码为utf8后,q行导入Q成功导入。数据也没有出现错误?nbsp;</p> 也可采用select * from 表名 into outfile "c:\\文g路径";q行查询Q进行导中的数据为文本文件格式?<br /> 也可以采用select * from 表名 into outfile "c:\\stu_t.txt" lines terminated by '\r\n';q行查询Q导出?img src ="http://www.tkk7.com/shmily432685/aggbug/153329.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/shmily432685/" target="_blank">闉|</a> 2007-10-16 17:10 <a href="http://www.tkk7.com/shmily432685/archive/2007/10/16/153329.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Oraclel常使用到的函数http://www.tkk7.com/shmily432685/archive/2006/02/14/30558.html闉|闉|Tue, 14 Feb 2006 02:45:00 GMThttp://www.tkk7.com/shmily432685/archive/2006/02/14/30558.htmlhttp://www.tkk7.com/shmily432685/comments/30558.htmlhttp://www.tkk7.com/shmily432685/archive/2006/02/14/30558.html#Feedback0http://www.tkk7.com/shmily432685/comments/commentRss/30558.htmlhttp://www.tkk7.com/shmily432685/services/trackbacks/30558.htmlPL/SQL单行函数和组函数详解
 函数是一U有零个或多个参数ƈ且有一个返回值的E序。在SQL中Oracle内徏了一pd函数Q这些函数都可被UCؓSQL或PL/SQL语句Q函C要分Z大类Q?BR>
   单行函数

   l函?

  本文讨论如何利用单行函C及用规则?BR>
  SQL中的单行函数

  SQL和PL/SQL中自带很多类型的函数Q有字符、数字、日期、{换、和混合型等多种函数用于处理单行数据Q因此这些都可被l称为单行函数。这些函数均可用于SELECT,WHERE、ORDER BY{子句中Q例如下面的例子中就包含了TO_CHAR,UPPER,SOUNDEX{单行函数?BR>SELECT ename,TO_CHAR(hiredate,'day,DD-Mon-YYYY')FROM empWhere UPPER(ename) Like 'AL%'ORDER BY SOUNDEX(ename)

  单行函数也可以在其他语句中用,如update的SET子句QINSERT的VALUES子句QDELET的WHERE子句,认证考试特别注意在SELECT语句中用这些函敎ͼ所以我们的注意力也集中在SELECT语句中?BR>
  NULL和单行函?BR>
  在如何理解NULL上开始是很困隄Q就是一个很有经验的Z然对此感到困惑。NULLDCZ个未知数据或者一个空|术操作W的M一个操作数为NULL|l果均ؓ提个NULL?q个规则也适合很多函数Q只有CONCAT,DECODE,DUMP,NVL,REPLACE在调用了NULL参数时能够返回非NULL倹{在q些中NVL函数时最重要的,因ؓ他能直接处理NULL|NVL有两个参敎ͼNVL(x1,x2),x1和x2都式表达式,当x1为null时返回X2,否则q回x1?BR>
  下面我们看看emp数据表它包含了薪水、奖金两,需要计ȝ补偿
column name emp_id salary bonuskey type pk nulls/unique nn,u nnfk table datatype number number numberlength 11.2 11.2

  不是单的薪水和奖金加v来就可以了,如果某一行是null值那么结果就是nullQ比如下面的例子Q?BR>update empset salary=(salary+bonus)*1.1

  q个语句中,雇员的工资和奖金都将更新Z个新的|但是如果没有奖金Q即 salary + null,那么׃得出错误的结论,q个时候就要用nvl函数来排除null值的影响?BR>所以正的语句是:
update empset salary=(salary+nvl(bonus,0)*1.1
单行字符串函?BR>
  单行字符串函数用于操作字W串数据Q他们大多数有一个或多个参数Q其中绝大多数返回字W串

  ASCII()
  c1是一字符Ԍq回c1W一个字母的ASCII码,他的逆函数是CHR()
SELECT ASCII('A') BIG_A,ASCII('z') BIG_z FROM empBIG_A BIG_z65 122

  CHR(QiQ?[NCHAR_CS]
  i是一个数字,函数q回十进制表C的字符
select CHR(65),CHR(122),CHR(223) FROM empCHR65 CHR122 CHR223A z B

  CONCAT(,)
  c1,c2均ؓ字符Ԍ函数c2q接到c1的后面,如果c1为null,返回c2.如果c2为null,则返回c1Q如果c1、c2都ؓnullQ则q回null。他和操作符||q回的结果相?BR>select concat('slobo ','Svoboda') username from dualusernameslobo Syoboda

  INITCAP()
  c1Z字符丌Ӏ函数将每个单词的第一个字母大写其它字母小写返回。单词由I格Q控制字W,标点W号限制?BR>select INITCAP('veni,vedi,vici') Ceasar from dualCeasarVeni,Vedi,Vici

  INSTR(,[,QiQ[,]])
  c1,c2均ؓ字符Ԍi,j为整数。函数返回c2在c1中第jơ出现的位置Q搜索从c1的第i个字W开始。当没有发现需要的字符时返?,如果i敎ͼ那么搜烦从叛_左进行,但是位置的计还是从左到叻Ii和j的缺省gؓ1.
select INSTR('Mississippi','i',3,3) from dualINSTR('MISSISSIPPI','I',3,3)11select INSTR('Mississippi','i',-2,3) from dualINSTR('MISSISSIPPI','I',3,3)2

  INSTRB(,[,i[,j])
  与INSTRQ)函数一P只是他返回的是字节,对于单字节INSTRB(){于INSTR()

  LENGTH()
  c1为字W串Q返回c1的长度,如果c1为nullQ那么将q回null倹{?BR>select LENGTH('Ipso Facto') ergo from dualergo10

  LENGTHb()
  与LENGTH()一Pq回字节?BR>
  lower()
  q回c的小写字W,l常出现在where子串?BR>select LOWER(colorname) from itemdetail WHERE LOWER(colorname) LIKE '%white%'COLORNAMEWinterwhite

  LPAD(,QiQ[,])
  c1,c2均ؓ字符Ԍi为整数。在c1的左侧用c2字符串补长度i,可多ơ重复,如果i于c1的长度,那么只返回i那么长的c1字符Q其他的被截去。c2的缺省gؓ单空|参见RPAD?BR>select LPAD(answer,7,'') padded,answer unpadded from question;PADDED UNPADDED Yes YesNO NOMaybe maybe

  LTRIM(,)
  把c1中最左边的字W去掉,使其W一个字W不在c2中,如果没有c2Q那么c1׃会改变?BR>select LTRIM('Mississippi','Mis') from dualLTRppi

  RPAD(,QiQ[,])
  在c1的右侧用c2字符串补长度i,可多ơ重复,如果i于c1的长度,那么只返回i那么长的c1字符Q其他的被截去。c2的缺省gؓ单空?其他与LPAD怼

  RTRIM(,)
  把c1中最双的字W去掉,使其W后一个字W不在c2中,如果没有c2Q那么c1׃会改变?BR>
  REPLACE(,[,])
  c1,c2,c3都是字符Ԍ函数用c3代替出现在c1中的c2后返回?BR>select REPLACE('uptown','up','down') from dualREPLACEdowntown

  STBSTR(,QiQ[,])
  c1Z字符Ԍi,j为整敎ͼ从c1的第i位开始返回长度ؓj的子字符Ԍ如果j为空Q则直到串的N?BR>select SUBSTR('Message',1,4) from dualSUBSMess

  SUBSTRB(,QiQ[,])
  与SUBSTR大致相同Q只是I,J是以字节计算?BR>
  SOUNDEX()
  q回与c1发音怼的词
select SOUNDEX('dawes') Dawes SOUNDEX('daws') Daws, SOUNDEX('dawson') from dualDawes Daws DawsonD200 D200 D250

  TRANSLATE(,,)
  c1中与c2相同的字W以c3代替
select TRANSLATE('fumble','uf','ar') test from dualTEXTramble

  TRIM([[]] from c3)
  c3串中的第一个,最后一个,或者都删除?BR>select TRIM(' space padded ') trim from dual TRIMspace padded

  UPPER()
  q回c1的大写,常出现where子串?BR>select name from dual where UPPER(name) LIKE 'KI%'NAMEKING
单行数字函数

  单行数字函数操作数字数据Q执行数学和术q算。所有函数都有数字参数ƈq回数字倹{所有三角函数的操作数和值都是弧度而不是角度,oracle没有提供内徏的弧度和角度的{换函数?BR>
  ABS()
  q回n的绝对?BR>
  ACOS()
  反余玄函敎ͼq回-1?之间的数。n表示弧度
select ACOS(-1) pi,ACOS(1) ZERO FROM dualPI ZERO3.14159265 0

  ASIN()
  反正玄函敎ͼq回-1?Qn表示弧度

  ATAN()
  反正切函敎ͼq回n的反正切|n表示弧度?BR>
  CEIL()
  q回大于或等于n的最整数?BR>
  COS()
  q回n的余玄|n为弧?BR>
  COSH()
  q回n的双曲余玄|n 为数字?BR>select COSH(<1.4>) FROM dualCOSH(1.4)2.15089847

  EXP()
  q回e的nơ幂Qe=2.71828183.

  FLOOR()
  q回于{于N的最大整数?BR>
  LN()
  q回N的自然对敎ͼN必须大于0

  LOG(,)
  q回以n1为底n2的对?BR>
  MOD()
  q回n1除以n2的余敎ͼ

  POWER(,)
  q回n1的n2ơ方

  ROUND(,)
  q回舍入数点右边n2位的n1的|n2的缺省gؓ0Q这回将数Ҏ接近的整敎ͼ如果n2数就舍入到小数点左边相应的位上,n2必须是整数?BR>select ROUND(12345,-2),ROUND(12345.54321,2) FROM dualROUND(12345,-2) ROUND(12345.54321,2)12300 12345.54

  SIGN()
  如果n敎ͼq回-1,如果n为正敎ͼq回1Q如果n=0q回0.

  SINQ?
  q回n的正玄?n为弧度?BR>
  SINH()
  q回n的双曲正玄?n为弧度?BR>
  SQRT()
  q回n的^Ҏ,n为弧?BR>
  TANQ?
  q回n的正切?n为弧?BR>
  TANH()
  q回n的双曲正切?n为弧?BR>
  TRUNC(,)
  q回截尾到n2位小数的n1的|n2~省讄?Q当n2为缺省设|时会将n1截尾为整敎ͼ如果n2|截֜数点左边相应的位上?BR>
  单行日期函数

  单行日期函数操作DATA数据cdQ绝大多数都有DATA数据cd的参敎ͼl大多数q回的也是DATA数据cd的倹{?BR>
  ADD_MONTHS(,QiQ?
  q回日期d加上i个月后的l果。i可以使Q意整数。如果i是一个小敎ͼ那么数据库将隐式的他转换成整敎ͼ会截去数点后面的部分?BR>
  LAST_DAY()
  函数q回包含日期d的月份的最后一?

  MONTHS_BETWEEN(,)
  q回d1和d2之间月的数目,如果d1和d2的日的日期都相同Q或者都使该月的最后一天,那么返回一个整敎ͼ否则会返回的l果包含一个分数?BR>
  NEW_TIME(,,)
  d1是一个日期数据类型,当时区tz1中的日期和时间是dӞq回时区tz2中的日期和时间。tz1和tz2时字W串?BR>
  NEXT_DAY(,)
  q回日期d后由dowl出的条件的W一天,dow使用当前会话中给出的语言指定了一周中的某一天,q回的时间分量与d的时间分量相同?BR>select NEXT_DAY('01-Jan-2000','Monday') "1st Monday",NEXT_DAY('01-Nov-2004','Tuesday')+7 "2nd Tuesday") from dual;1st Monday 2nd Tuesday03-Jan-2000 09-Nov-2004

  ROUND([,])
  日期d按照fmt指定的格式舍入,fmt为字W串?BR>
  SYADATE
  函数没有参数Q返回当前日期和旉?BR>
  TRUNC([,])
  q回由fmt指定的单位的日期d.
单行转换函数

  单行转换函数用于操作多数据类型,在数据类型之间进行{换?BR>
  CHARTORWID()
  c 使一个字W串Q函数将c转换为RWID数据cd?BR>SELECT test_id from test_case where rowid=CHARTORWID('AAAA0SAACAAAALiAAA')

  CONVERT(,[,])
  c֭W串Qdset、sset是两个字W集Q函数将字符串c由sset字符集{换ؓdset字符集,sset的缺省设|ؓ数据库的字符集?BR>
  HEXTORAW()
  x?6q制的字W串Q函数将16q制的x转换为RAW数据cd?BR>
  RAWTOHEX()
  x是RAW数据cd字符Ԍ函数RAW数据c{换ؓ16q制的数据类型?BR>
  ROWIDTOCHAR()
  函数ROWID数据cd转换为CHAR数据cd?BR>
  TO_CHAR([[,)
  x是一个data或number数据cdQ函数将x转换成fmt指定格式的char数据cdQ如果x为日期nlsparm=NLS_DATE_LANGUAGE 控制q回的月份和日䆾所使用的语a。如果x为数字nlsparm=NLS_NUMERIC_CHARACTERS 用来指定数位和千分位的分隔W,以及货币W号?BR>NLS_NUMERIC_CHARACTERS ="dg", NLS_CURRENCY="string"

  TO_DATE([,[,Q?BR>  c表示字符Ԍfmt表示一U特D格式的字符丌Ӏ返回按照fmt格式昄的c,nlsparm表示使用的语a。函数将字符串c转换成date数据cd?BR>
  TO_MULTI_BYTE()
  c表示一个字W串Q函数将c的担子截字符转换成多字节字符?BR>
  TO_NUMBER([,[,)
  c表示字符Ԍfmt表示一个特D格式的字符Ԍ函数q回值按照fmt指定的格式显C。nlsparm表示语言Q函数将q回c代表的数字?BR>
  TO_SINGLE_BYTE()
  字W串c中得多字节字W{化成{h的单字节字符。该函数仅当数据库字W集同时包含单字节和多字节字W时才?BR>
  其它单行函数

  BFILENAME(
,)
  dir是一个directorycd的对象,fileZ文g名。函数返回一个空的BFILE位置值指C符Q函数用于初始化BFILE变量或者是BFILE列?BR>
  DECODE(,,[,,,[])
  x是一个表辑ּQm1是一个匹配表辑ּQx与m1比较Q如果m1{于xQ那么返回r1,否则,x与m2比较Q依ơ类推m3,m4,m5....直到有返回结果?BR>
  DUMP(,[,[,[,]]])
  x是一个表辑ּ或字W,fmt表示8q制?0q制?6q制、或则单字符。函数返回包含了有关x的内部表CZ息的VARCHAR2cd的倹{如果指定了n1,n2那么从n1开始的长度为n2的字节将被返回?BR>
  EMPTY_BLOB()
  该函数没有参敎ͼ函数q回 一个空的BLOB位置指示W。函数用于初始化一个BLOB变量或BLOB列?BR>
  EMPTY_CLOB()
  该函数没有参敎ͼ函数q回 一个空的CLOB位置指示W。函数用于初始化一个CLOB变量或CLOB列?BR>
  GREATEST()
  exp_list是一列表辑ּQ返回其中最大的表达式,每个表达式都被隐含的转换W一个表辑ּ的数据类型,如果W一个表辑ּ是字W串数据cd中的M一个,那么q回的结果是varchar2数据cdQ同时用的比较是非填充I格cd的比较?BR>
  LEAST()
  exp_list是一列表辑ּQ返回其中最的表达式,每个表达式都被隐含的转换W一个表辑ּ的数据类型,如果W一个表辑ּ是字W串数据cd中的M一个,返回的l果是varchar2数据cdQ同时用的比较是非填充I格cd的比较?BR>
  UID
  该函数没有参敎ͼq回唯一标示当前数据库用L整数?BR>
  USER
  q回当前用户的用户名

  USERENV()
  Zoptq回包含当前会话信息。opt的可选gؓQ?BR>
  ISDBA    会话中SYSDBA脚色响应Q返回TRUE
  SESSIONID  q回审计会话标示W?BR>  ENTRYID   q回可用的审计项标示W?
  INSTANCE  在会话连接后Q返回实例标C符。该值只用于q行Parallel 服务器ƈ且有 多个实例的情况下使用?BR>  LANGUAGE  q回语言、地域、数据库讄的字W集?BR>  LANG    q回语言名称的ISO~写?BR>  TERMINAL  为当前会话用的l端或计机q回操作pȝ的标C符?BR>
  VSIZE()
  x是一个表辑ּ。返回x内部表示的字节数?BR>SQL中的l函?BR>
  l函C叫集合函敎ͼq回Z多个行的单一l果Q行的准数量无法确定,除非查询被执行ƈ且所有的l果都被包含在内。与单行函数不同的是Q在解析时所有的行都是已知的。由于这U差别ɾl函C单行函数有在要求和行Z有微的差异.

  l(多行Q函?BR>
  与单行函数相比,oracle提供了丰富的Zl的Q多行的函数。这些函数可以在select或select的having子句中用,当用于select子串时常帔R和GROUP BY一起用?BR>
  AVG([{DISYINCT|ALL}])
  q回数值的q_倹{缺省设|ؓALL.
SELECT AVG(sal),AVG(ALL sal),AVG(DISTINCT sal) FROM scott.empAVG(SAL) AVG(ALL SAL) AVG(DISTINCT SAL)1877.94118 1877.94118 1916.071413

  COUNT({*|DISTINCT|ALL} )
  q回查询中行的数目,~省讄是ALL,*表示q回所有的行?BR>
  MAX([{DISTINCT|ALL}])
  q回选择列表目的最大|如果x是字W串数据cdQ他q回一个VARCHAR2数据cdQ如果X是一个DATA数据cdQ返回一个日期,如果X是numeric数据cdQ返回一个数字。注意distinct和all不v作用Q应为最大gq两U设|是相同的?BR>
  MIN([{DISTINCT|ALL}])
  q回选择列表目的最倹{?BR>
  STDDEV([{DISTINCT|ALL}])
  q回选者的列表目的标准差Q所谓标准差是方差的qx栏V?BR>
  SUM([{DISTINCT|ALL}])
  q回选择列表目的数值的d?BR>
  VARIANCE([{DISTINCT|ALL}])
  q回选择列表目的统计方差?BR>
  用GROUP BYl数据分l?BR>
  正如题目暗示的那L函数是操作那些已经分好l的数据Q我们告诉数据库用GROUP BY怎样l数据分l或者分c,当我们在SELECT语句的SELECT子句中用组函数Ӟ我们必须把ؓ分组或非常数列放|在GROUP BY子句中,如果没有用group byq行专门处理Q那么缺省的分类是将整个l果设ؓ一cR?BR>select stat,counter(*) zip_count from zip_codes GROUP BY state;ST ZIP_COUNT-- ---------AK 360AL 1212AR 1309AZ 768CA 3982

  在这个例子中Q我们用state字段分类Q如果我们要结果按照zip_codes排序,可以用ORDER BY语句QORDER BY子句可以使用列或l函数?BR>select stat,counter(*) zip_count from zip_codes GROUP BY state ORDER BY COUNT(*) DESC;ST COUNT(*)-- --------NY 4312PA 4297TX 4123CA 3982

  用HAVING子句限制分组数据

  现在你已l知道了在查询的SELECT语句和ORDER BY子句中用主函数Q组函数只能用于两个子串中,l函C能用于WHERE子串中,例如下面的查询是错误的:
错误SELECT sales_clerk,SUN(sale_amount) FROM gross_sales WHERE sales_dept='OUTSIDE' AND SUM(sale_amount)>10000 GROUP BY sales_clerk

  q个语句中数据库不知道SUM()是什么,当我们需要指C数据库对行分组Q然后限制分l后的行的输出时Q正的Ҏ是用HAVING语句Q?BR>SELECT sales_clerk,SUN(sale_amount) FROM gross_sales WHERE sales_dept='OUTSIDE' GROUP BY sales_clerkHAVING SUM(sale_amount)>10000;

  嵌套函数

  函数可以嵌套。一个函数的输出可以是另一个函数的输入。操作数有一个可l承的执行过E。但函数的优先权只是Z位置Q函数遵循由内到外,由左到右的原则。嵌套技术一般用于象DECODEq样的能被用于逻辑判断语句IF....THEN...ELSE的函数?BR>
  嵌套函数可以包括在组函数中嵌套单行函敎ͼ或者组函数嵌套入单行函数或l函C。比如下面的例子Q?BR>SELECT deptno, GREATEST(COUNT(DISTINCT job),COUNT(DISTINCT mgr) cnt,COUNT(DISTINCT job) jobs,COUNT(DISTINCT mgr) mgrsFROM empGROUP BY deptno;DEPTNO CNT JOBS MGRS------ --- ---- ----10 4 4 220 4 3 430 3 3 2



闉| 2006-02-14 10:45 发表评论
]]>
SSH操作linux的weblogic、oracle的指令语?/title><link>http://www.tkk7.com/shmily432685/archive/2005/11/01/17660.html</link><dc:creator>闉|</dc:creator><author>闉|</author><pubDate>Tue, 01 Nov 2005 04:05:00 GMT</pubDate><guid>http://www.tkk7.com/shmily432685/archive/2005/11/01/17660.html</guid><wfw:comment>http://www.tkk7.com/shmily432685/comments/17660.html</wfw:comment><comments>http://www.tkk7.com/shmily432685/archive/2005/11/01/17660.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.tkk7.com/shmily432685/comments/commentRss/17660.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/shmily432685/services/trackbacks/17660.html</trackback:ping><description><![CDATA[<STRONG><FONT size=5>weblogic</FONT></STRONG><BR>1、徏立连接:su-weblogic后根据提C入密码?BR>2、进入启动目?BR>      cd bea<BR>      ls :查看目录下文件?BR>      cd user_projects Q进入配|相关项目目录?BR>      Ҏ提示q入相关目录如下Q?BR>      cd domains<BR>      cd mydomain<BR>3、停止WebLogic服务Q?/stopWebLogic.sh<BR>4、启动WebLogic服务Q?/startWebLogic.sh<BR>      后台启动服务Qnohup sh startWebLogic.sh >log1026 &<BR>      查看启动服务后的日志Qtail -f  log1026<BR>5、查看文件下?xml文gQvi 文g?BR>6、修ҎӞinsert<BR>7、结束修改:按Esc键后,q,退出,wq保存退出,w保存不退出?BR><STRONG><FONT size=5>Oracle<BR></FONT></STRONG>1、进入oracleQsu - oracle后根据密码提C入密码?BR>2、进入sqlplusQsqlplus /nolog<BR>3、连接oracle服务器:connect 用户?密码<BR><BR><img src ="http://www.tkk7.com/shmily432685/aggbug/17660.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/shmily432685/" target="_blank">闉|</a> 2005-11-01 12:05 <a href="http://www.tkk7.com/shmily432685/archive/2005/11/01/17660.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>oracle数据库移植时字符集问题的解决http://www.tkk7.com/shmily432685/archive/2005/10/28/17185.html闉|闉|Fri, 28 Oct 2005 07:41:00 GMThttp://www.tkk7.com/shmily432685/archive/2005/10/28/17185.htmlhttp://www.tkk7.com/shmily432685/comments/17185.htmlhttp://www.tkk7.com/shmily432685/archive/2005/10/28/17185.html#Feedback0http://www.tkk7.com/shmily432685/comments/commentRss/17185.htmlhttp://www.tkk7.com/shmily432685/services/trackbacks/17185.html

 

对于oracle数据库之间的UL采用oracle的导入导出工?import/export)是一个比较好的策略。虽也可以利用第三方软g如sybase 的power designer中的reverse engineering q行数据库结构重建,然后在进行较复杂的数据导入过E,但对于作业队列、快照等则不得不用手工来创徏。而export能将整个数据库、指定用戗指定表和相关的数据字典q行输出Qexport输出的输{存二q制文g包括了完全重建所有被选对象所需的命令?

本h在ؓ某电厂mis(oracle数据?数据采用oracle的导入导出工具从windows ntq_UL到digital unixq_旉到的关于字符集的问题和ȝ出的l验与大家来分n?

1. UL环境
原操作系l^収ͼ windows nt
数据库: oracle 8.0.5 for windows nt
服务器:hp netserver lh3
目标操作pȝq_Qdigital unix alpha v4.0
数据库:oracle 8.0.4 for digital unix
服务器:alphaserver es40 型?

2. 数据导出
在nt服务器上用oracle导出工具q行数据导出,oracle导出工具有命令行和图形界面两U方式?
本h直接用命令行方式q行数据导出Q?
c:> exp80 gxmisdba/manager file=c:expdat.dmp log=c:export.log
卛_导出指定的用?..
. 正在导出用户gxmisdba的外部函数程序库名称
. 正在导出用户gxmisdba的对象类型定?
卛_导出gxmisdba的对?...
. 正在导出数据库链?
. 正在导出序号
. 正在导出集定义
. 卛_导出gxmisdba的表通过常规路径 ...
. . 正在导出?    aaaaa          0 行被导出
. . 正在导出? evt_carrier_configuration   0 行被导出
. . 正在导出?   tbl_aj_agks       331 行被导出
  .
  .
  .
. 正在导出同义?
. 正在导出视图
. 正在导出存储的过E?
. 正在导出参考资料一致性约束条?
. 正在导出触发?
. 正在导出后期表活?
. 正在导出快照
. 正在导出快照日志
. 正在导出作业队列
. 正在导出hl和子组
在没有警告的情况下成功终止导出?

3.数据导入
在nt服务器上通过ftp命o导出的输出转存二进制文件expdat.dmp(使用binary传输模式)传输至digital unix服务器上?
用oracle for digital unix 数据导入工具命o行方式进行数据导?
$imp gxmisdba/manager file=/expdat.dmp full=y log=u01import.log
connected to: oracle8 enterprise edition release 8.0.4.0.0 - production
pl/sql release 8.0.4.0.0 - production
export file created by export:v08.00.05 via conventional path
. importing gxmisdbas objects into gxmisdba
. . importing table   "aaaaa"            0 rows imported
. . importing table  "evt_carrier_configuration"   0 rows imported
. . importing table   "tbl_aj_stk"         331 rows imported
imp-00017: following statement failed with oracle error 2437:
"alter table "tbl_kj_jlry" add constraint "pk_tbl_kj_jlry" primary key ("fld_kj_jlry_bh","fld_kj_jlry_xm") using index pctfree 10 initrans 2 maxtrans 255 storage (initial 10240 next 10240 minextents 1 maxextents 2147483645 pctincrease 50 freelists 1 freelist groups 1 buffer_pool default)"
"      enable novalidate"
imp-00003: oracle error 2437 encountered
ora-02437: cannot enable (gxmisdba.pk_tbl_kj_jlry) - primary key violated
.
.
.
import terminated successfully with warnings.
数据导入出现20多个以上cM错误Q后分析其中报错?tbl_aj_stk"表,发现"fld_kj_jlry_xm"字段?关键字组成之一)Z文字W而在digital unix服务器oracle数据库中"fld_kj_jlry_xm"字段值显C的?????"(在客L用oracle sql plus查看)Q从而造成关键字冲H?
在客Loracle sql plusҎ行显C?????"的字DD行修改,如改成中文值”测试?提交后,用sql语句查看Q刚修改的行中显C?????"的字D值变成了”测试”,q说明了digital unin服务器上的oracle数据集可以存储中文字W,但oracle 8.0.4 for digital unin的导入工具imp未能oracle 8.0.5 for windows nt imp80导出的中文数据进行{换?

4.查看字符集参?
4.1查看oracle 8.0.5 for windows nt props$内容
sql> connect sys/change_on_install
sql> col value$ format a40
sql> select name,value$ from props$;
name              value$
---------------------------------------
dict.base            2
nls_language           american
nls_territory          america
nls_currency           $
nls_iso_currency         america
nls_numeric_characters     .,
nls_calendar           gregorian
nls_date_format         dd-mon-yy
nls_date_language        american
nls_characterset         zhs16gbk
nls_sort            binary
nls_nchar_characterset     zhs16gbk
nls_rdbms_version        8.0.5.0.0
global_db_name         oracle.world
export_views_version      7
已选择15行?

4.2查看oracle 8.0.4 for digital unin 的props$内容
sql> connect sys/change_on_install
sql> col value$ format a40
sql> select name,value$ from props$;
name              value$
---------------------------------------
dict.base            2
nls_language           american
nls_territory          america
nls_currency           $
nls_iso_currency         america
nls_numeric_characters      .,
nls_calendar           gregorian
nls_date_format         dd-mon-yy
nls_date_language        american
nls_characterset         zhs16cgb231280
nls_sort             binary
nls_nchar_characterset      zhs16cgb231280
nls_rdbms_version        8.0.4.0.0
global_db_name          orcl.world
export_views_version      7
15 rows selected.
发现oracle 8.0.4 for digital unin 采用了oracle在digital unix环境下徏议的中文字符集zhs16cgb231280,两者的字符集不同,于是本h在digital unin服务器上重新安装oracleQ选择了与nt上同L字符集zhs16gbk(中国体汉?6位国标库)。安装完成后Q通过查看props$的内容,认了oracle 8.0.4 for digital unin和oracle 8.0.5 for windows nt的字W集一致。于是用oracle 8.0.4 for digital unin的导入工具imp重新q行数据导入Q但q是报同L错误Q问题还未得到解冟?

5.问题解决办法
后来本h发现在oracle 8.0.5 for windows nt的服务器(或装有oracle 8.0.5 for windows 95/98的工作站)上直接用oracle 8.0.5 for windows nt的导入工具imp80q程对oracle 8.0.4 for digital unin数据库进行数据导入,问题竟得到解冟?
5.1在nt的服务器上,修改tnsnames.ora(或通过oracle net8 easy config)讄数据库连接字W串gxmis(可自行设?指向oracle 8.0.4 for digital unin服务器?

5.2在nt的服务器上进行数据远E导?
c:>imp80 gxmisdba/manager@gxmis file=c:expdat.dmpfull=y log=c:import.log

已连接到Qoracle8 enterprise edition release 8.0.4.0.0 - production
pl/sql release 8.0.4.0.0 - production
l由常规路径导出由export:v08.00.05创徏的文?
. 正在gxmisdba的对象导入到 gxmisdba
. . 正在导入?"aaaaa" 0行被导入
. . 正在导入?"evt_carrier_configuration" 0行被导入
. . 正在导入?"tbl_aj_agks" 331行被导入
.
.
.
准备启用U束条g...
成功l止导入

5.3把oracle 8.0.4 for digital unin字符集重新又Ҏzhs16cgb231280,q行数据q程导入试Q数据也同样地导入成功。说明zhs16cgb231280字符集可以兼容zhs16gbk字符集?

6.l验ȝ
6.1在oracle 8.0.4 for digital unin服务器上(字符集zhs16gbk)?.0.4 for digital unin的导出工具exp已正常(卛_存储和显CZ?的数据库导出?
$ exp gxmisdba/manager file=/u01/expdat.dmp log=/u01/export.log
昄成功导出?
在用oracle 8.0.4 for digital unin的导入工具impq行导入
$imp gxmisdba/manager file=/u01/expdat.dmp full=y log=u01import.log
错误又重现?

6.2在nt服务器上通过ftp命o在oracle 8.0.4 for digital unin服务器上刚导出的输出转存二进制文件expdat.dmp下蝲至nt服务器上Q用imp80q行q程导入?
c:>imp80 gxmisdba/manager@gxmis file=c:expdat.dmp full=y log=c:import.log
已连接到Qoracle8 enterprise edition release 8.0.4.0.0 ?production
pl/sql release 8.0.4.0.0 ?production
imp-00016: 不支持要求的字符集{换(从类??52Q?
imp-00000: 未成功终止导?

6.3在nt服务器上对digital unin服务器上的数据进行远E导?备䆾)
c:>exp80 gxmisdba/manager@gxmis file=c:expdat.dmp log=c:export.log
昄成功导出。再q行q程导入
c:>imp80 gxmisdba/manager@gxmis file=c:expdat.dmp full=y log=c:import.log
昄成功导入。通过客户端oracle sql plus查看中文昄正常?
从而说明在oracle 8.0.4 for digital unin服务器上对含有中文的数据库的数据UL、备份、数据恢复不要用oracle 8.0.4 for digital unin本n自带的导入导出工具imp,expQ应使用能进行中文导入导出的工具Q如imp80,exp80?



闉| 2005-10-28 15:41 发表评论
]]>
改变数据库字W集的方?/title><link>http://www.tkk7.com/shmily432685/archive/2005/10/20/16113.html</link><dc:creator>闉|</dc:creator><author>闉|</author><pubDate>Thu, 20 Oct 2005 04:34:00 GMT</pubDate><guid>http://www.tkk7.com/shmily432685/archive/2005/10/20/16113.html</guid><wfw:comment>http://www.tkk7.com/shmily432685/comments/16113.html</wfw:comment><comments>http://www.tkk7.com/shmily432685/archive/2005/10/20/16113.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.tkk7.com/shmily432685/comments/commentRss/16113.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/shmily432685/services/trackbacks/16113.html</trackback:ping><description><![CDATA[oracle 数据库具有国际化的支持能? 主要通过字符集等 NLS(National Language Support)  参数讄来实现对不同国家语言环境的支持。其中数据库的字W集是在数据库创建的阶段, ?create database 语句中指定的Q数据库一l徏立,字符集就没法改变了,除非重徏。我们最常用的字W集讄通常?zhs16cgb231280(国标2312字库) ?ZHS16GBK(Ҏ GBK 字库)。GBK是在GB2312-80标准基础上的内码扩展规范Q用了双字节编码方案,其编码范围从8140至FEFEQ剔除xx7FQ,?3940个码位,共收录了21003个汉字,完全兼容国标GB2312-80标准(只实C6763个汉??<BR><BR>在项目开发和l护q程中我们经怼遇见下面的情? 使用 ZHS16CGB231280 字符集的oracle pȝ中,姓名中出现的很多疑难汉字无法正常昄Q显CZؓ ??Q?BR><BR>    遇见q种情况以往最常见的处理方法是导出数据(exp), ?ZHS16GBK 字符集重建数据库Q最后再导入(imp)数据。但q个q程对于一个大型数据库来说很O长和痛苦。这里给大家介绍一个比较快速简单的ҎQ几分钟p实现字符集{换。这里以 oracle9iZ(8i中的操作略有不同)?BR><BR>1.        作ؓ oracle 用户d数据库服务器<BR><BR>2.        停止监听E序<BR>                   $lsnrctl stop<BR>                   ?BR>                   $lsnrctl stop  listener名称<BR><BR>3.        作ؓ sysdba d数据? q检查目前的数据库字W集讄<BR>                   sqlplus /nolog<BR>                   connect /as sysdba<BR>                   select value$ from props$ where name ='NLS_CHARACTERSET';<BR><BR>如果上述查询l果?ZHS16CGB231280, 则进行如下操?<BR><BR>4.        保存下列数据库配|参数的原始讄<BR>             show parameter job_queue_processes<BR>             show parameter aq_tm_processes<BR><BR>5.        关闭数据库服?重新启动后修Ҏ据库字符? q关闭数据库<BR>              shutdown immediate<BR>              startup mount<BR>              alter system enable restricted session;<BR>              alter database open;<BR>              alter system set job_queue_processes = 0;<BR>              alter system set aq_tm_processes = 0;<BR>              alter database character set internal_use zhs16gbk;<BR>              shutdown immediate<BR><BR>6.        重新启动数据库服?恢复 job_queue_processes讄<BR>             startup<BR>             alter system set job_queue_processes=原始讄;<BR>             alter system set aq_tm_processes=原始讄;<BR>             exit<BR><BR>7.        启动监听E序<BR>             $lsnrctl start<BR>             ?BR>             $lsnrctl start  listener名称<BR><BR>8.        修改客户?NLS_LANG 讄<BR>             windows 客户端在注册表中修改 NLS_LANG 参数:<BR>             nls_lang=”American_america.zhs16gbk?BR><BR>    注意Q这里要指出的是, 字符集间的{换可能会造成数据库信息破坏,如把 ZHS16GBK 的oracle 数据库{换ؓ zhs16cgb231280, 其中的疑难汉字就会变成同L??, 有时甚至造成主键重复z违反唯一索引{问题。可能很有人知? Oracle 其实提供了一个应用程?csscan, 可以用来字W集转换后数据库的内Ҏ否会被破坏。要使用 csscan E序必须先以 sysdba 的n份执?$ORACLE_HOME/rdbms/admin 目录下的 csminst.sql。csscan help=y 可以得到关于 csscan 命o使用Ҏ的帮助?BR><img src ="http://www.tkk7.com/shmily432685/aggbug/16113.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/shmily432685/" target="_blank">闉|</a> 2005-10-20 12:34 <a href="http://www.tkk7.com/shmily432685/archive/2005/10/20/16113.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss> <footer> <div class="friendship-link"> <p>лǵվܻԴȤ</p> <a href="http://www.tkk7.com/" title="亚洲av成人片在线观看">亚洲av成人片在线观看</a> <div class="friend-links"> </div> </div> </footer> վ֩ģ壺 <a href="http://liulian88.com" target="_blank">޹ҹӰ</a>| <a href="http://fsbj168.com" target="_blank">ȫӰѹۿȫ</a>| <a href="http://sxjttxkywl.com" target="_blank">Ʒþþþþù</a>| <a href="http://se988.com" target="_blank">Ʒۿ˳</a>| <a href="http://rushiruhua.com" target="_blank">˳վѲ</a>| <a href="http://234an.com" target="_blank">ĻۺϾþۺ</a>| <a href="http://3y0r.com" target="_blank">ɫ¸avվ</a>| <a href="http://arkinbokis.com" target="_blank">ۺŷɫ°Ҳȥ</a>| <a href="http://xjyzz.com" target="_blank">ŷһ</a>| <a href="http://ding001.com" target="_blank">ؼؼŷһ</a>| <a href="http://sxhnyl.com" target="_blank">þ޾Ʒ11p</a>| <a href="http://zjlxblog.com" target="_blank">һëƬѹۿƵ</a>| <a href="http://bd0574.com" target="_blank">պƷƵ</a>| <a href="http://4eeyy.com" target="_blank">jizzѹۿƵ</a>| <a href="http://www64427.com" target="_blank">aƵѹۿ</a>| <a href="http://hsewx.com" target="_blank">þþþþþ99Ʒ </a>| <a href="http://532342.com" target="_blank">޾ƷһۺҰ</a>| <a href="http://tuopumao.com" target="_blank">˳Ƶۿ</a>| <a href="http://haidiaori.com" target="_blank"> ŷ Ƶ С˵</a>| <a href="http://www045888.com" target="_blank">޾Ʒר߲</a>| <a href="http://zxbj0471.com" target="_blank">Ʒ</a>| <a href="http://xjscr.com" target="_blank">ˮwww</a>| <a href="http://yaku100.com" target="_blank">һѲ </a>| <a href="http://ttvv55.com" target="_blank">ѾƷӰվ</a>| <a href="http://wogool.com" target="_blank">þwww˳ɿƬ</a>| <a href="http://800141.com" target="_blank">þþƷӰѿ</a>| <a href="http://6ork.com" target="_blank">þAëƬѹۿ</a>| <a href="http://xx16xx.com" target="_blank">Ƶѹۿ</a>| <a href="http://dqcjlb.com" target="_blank">ƷѾþþþþóӰԺ</a>| <a href="http://wwwfafa98.com" target="_blank">һƬѿ</a>| <a href="http://w7768.com" target="_blank">߾Ʒһ</a>| <a href="http://wangquanai.com" target="_blank">þþƷAV鶹 </a>| <a href="http://daohang123456.com" target="_blank">޵һĻ</a>| <a href="http://www-715111.com" target="_blank">Ʒ˿߲</a>| <a href="http://czdlglass.com" target="_blank">6080yyþԹ</a>| <a href="http://zgj688.com" target="_blank">һëƬȫ</a>| <a href="http://929119.com" target="_blank">ٸ͵˾ƷƵ</a>| <a href="http://socgl.com" target="_blank">ŮëƬaѧëƬ</a>| <a href="http://ynyinglie.com" target="_blank">޹ƷۺϾþ </a>| <a href="http://xzdlgp.com" target="_blank">һػɫƬ</a>| <a href="http://pjszlw.com" target="_blank">޺ݺۺϾþþþ</a>| <script> (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })(); </script> </body>