yoyozy.com 工作空间

yoyozy.com

数据库相关

oracle、sql server
oracle 字符串分割

drscode字段中存储的数据格式为 'aaa,bbb,ccc'  现在只想取出drscode中的bbb  下面是使用得sql:

select t.drscode,substr(t.drscode,instr(t.drscode,',',1)+1,instr(t.drscode,',',1,2)-instr(t.drscode,',',1)-1) aaa  from kensa_order t where t.id='7800220'

instr(string1,string2[,a][,b])
这个是orcale内置SQL函数,返回的是一个数字,表示string1中包含string2的位置,a和b是可选参数,a表示起始位置,当a为负数时表示从右开始查找; b表示string2在string1中出现的次数,也就是第b次出现string2时将位置返回。a和b的缺省值都是1,即返回在string1中第一次出现string2的位置。

substr(string,a [,b])
这个是orcale内置SQL函数,返回的是string的一部分,从字符位置a开始,长为b个字符,当a为负数时表示从右边开始截取。

本篇文章使用aigaogao Blog软件发布, “我的Blog要备份”

发表于 @ 2006年02月15日 11:16 AM | 评论 (0)

oracl中lpad的用法

lpad格式是 lpad(char1,n,char2)
LPAD returns char1, left-padded to length n with the sequence of characters in char2; char2 defaults to a single blank. If char1 is longer than n, then this function returns the portion of char1 that fits in n.

LPAD ('55', 10, '0') ==> '0000000055'

 

 

本篇文章使用aigaogao Blog软件发布, “我的Blog要备份”

发表于 @ 2006年02月13日 11:16 AM | 评论 (0)

用imp/exp命令 导入导出Oracle数据
数据导出:
 1 将数据库TEST完全导出,用户名system 密码manager 导出到D:\daochu.dmp中
   exp system/manager@TEST file=d:\daochu.dmp full=y
 2 将数据库中system用户与sys用户的表导出
   exp system/manager@TEST file=d:\daochu.dmp owner=(system,sys)
 3 将数据库中的表table1 、table2导出
   exp system/manager@TEST file=d:\daochu.dmp tables=(table1,table2) 
 4 将数据库中的表table1中的字段filed1以"00"打头的数据导出
   exp system/manager@TEST file=d:\daochu.dmp tables=(table1) query=\" where filed1 like '00%'\"
 
     上面是常用的导出,对于压缩我不太在意,用winzip把dmp文件可以很好的压缩。
                     不过在上面命令后面 加上 compress=y  就可以了

数据的导入
 1 将D:\daochu.dmp 中的数据导入 TEST数据库中。
   imp system/manager@TEST  file=d:\daochu.dmp
   上面可能有点问题,因为有的表已经存在,然后它就报错,对该表就不进行导入。
   在后面加上 ignore=y 就可以了。
 2 将d:\daochu.dmp中的表table1 导入
 imp system/manager@TEST  file=d:\daochu.dmp  tables=(table1) 
 
 基本上上面的导入导出够用了。不少情况我是将表彻底删除,然后导入。

功能:Oracle数据导入导出imp/exp就相当与oracle数据还原与备份。
 大多情况都可以用Oracle数据导入导出完成数据的备份和还原(不会造成数据的丢失)。
 
 Oracle有个好处,虽然你的电脑不是服务器,但是你装了oracle客户端,并建立了连接
 (通过net8 assistant中本地-->服务命名 添加正确的服务命名
 其实你可以想成是客户端与服务器端修了条路,然后数据就可以被拉过来了)
 这样你可以把数据导出到本地,虽然可能服务器离你很远。
 你同样可以把dmp文件从本地导入到远处的数据库服务器中。
 利用这个功能你可以构建俩个相同的数据库,一个用来测试,一个用来正式使用。
 
执行环境:可以在SQLPLUS.EXE或者DOS(命令行)中执行,
 DOS中可以执行时由于 在oracle 8i 中  安装目录\ora81\BIN被设置为全局路径,
 该目录下有EXP.EXE与IMP.EXE文件被用来执行导入导出。
 oracle用java编写,我想SQLPLUS.EXE、EXP.EXE、IMP.EXE这俩个文件是被包装后的类文件。
 SQLPLUS.EXE调用EXP.EXE、IMP.EXE他们所包裹的类,完成导入导出功能。

注意:
 你要有足够的权限,权限不够它会提示你。
 数据库时可以连上的。可以用tnsping TEST 来获得数据库TEST能否连上。

本篇文章使用aigaogao Blog软件发布, “我的Blog要备份”

发表于 @ 2005年11月10日 12:37 PM | 评论 (1)

[Oracle 10g]-表空间的更名

    摘要:在 Oracle 10g 以前的版本,更改表空间名字是几乎不可能的事情,除非删除,重新创建,大费周章。Oracle 10g 新添加了一项更改表空间名字的功能,使得更改表空间名字瞬间即可完成。是个较为人性化的功能。    (全文共6030字)——点击此处阅读全文

发表于 @ 2005年11月04日 4:19 PM | 评论 (0)

Oracle里汉字长度问题

    摘要:  以前在做一个系统时,遇到了一个问题!今天无意之中找到了这个问题的解决方法,贴出来!!!问题描述:varchar2(4000) abc;intert into table_name(abc) values('这里有1500个汉字……');报错:插入字符过长!经过测试,发现一个汉字占3个字节,所以报错!!!问题所在:使用的字符集是UTF8,就有可能出现这个错误!使用命令查看:SQL> select * from v$nls_parameters where parameter='NLS_CHARACTERSET';PARAMETER--------------------------------------------------------------------------------VALUE    (全文共1276字)——点击此处阅读全文

发表于 @ 2005年11月04日 4:12 PM | 评论 (0)

SQL编写规范

    摘要:1.书写格式    示例代码:    存储过程SQL文书写格式例  select  c.dealerCode,  round(sum(c.submitSubletAmountDLR + c.submitPartsAmountDLR + c.submitLaborAmountDLR) / count(*), 2) as avg,  decode(null, 'x', 'xx', 'CNY')  from (  select  a.dealerCode,  a.submitSubletAmountDLR,  a.submitPartsAmountDLR,  a.submitLaborAmountDLR  from SRV_TWC_F a  where (to_char(a.ORIGSUBMITTIME, 'yyyy/mm/dd') >= 'Date Range(start)'  and to_char(    (全文共14500字)——点击此处阅读全文

发表于 @ 2005年11月04日 4:10 PM | 评论 (1)

SQL语句的基本语法

    摘要:  一.SELECT语句的完整语法为:      SELECT[ALL|DISTINCT|DISTINCTROW|TOP]   {*|talbe.*|[table.]field1[AS alias1][,[table.]field2[AS alias2][,…]]}   FROM tableexpression[,…][IN externaldatabase]   [WHERE…]   [GROUP BY…]   [HAVING…]   [ORDER BY…]   [WITH OWNERACCESS OPTION]    (全文共11302字)——点击此处阅读全文

发表于 @ 2005年11月04日 4:05 PM | 评论 (0)

更改Oracle XDB占用的8080端口

    摘要:Oracle 默认的XML DB把HTTP的默认端口设为8080,这是一个太常用的端口了,很多别的WebServer都会使用这个端口,所以我们需要修改它。方法三种:1。dbca,选择你的数据库,然后Standard Database Features->Customize->Oracle XML DB option,进入这个画面你应该就知道怎么改了。2。OEM console,在XML Database 的配置里面修改3。用oracle提供的包:-- 把HTTP/WEBDAV端口从8080改到8081SQL> call dbms_xdb.cfg_update(updateXML(dbms_xdb.cfg_get(),'/xdbconfig/sysconfig/protocolconfig/httpconfig/http-port/text()',8081))/-- 把FTP端口从2100改到2111SQ    (全文共28680字)——点击此处阅读全文

发表于 @ 2005年10月20日 10:55 AM | 评论 (0)

sql server常用语句

    摘要:--语 句 功 能--数据操作SELECT --从数据库表中检索数据行和列INSERT --向数据库表添加新数据行DELETE --从数据库表中删除数据行UPDATE --更新数据库表中的数据--数据定义CREATE TABLE --创建一个数据库表DROP TABLE --从数据库中删除表ALTER TABLE --修改数据库表结构CREATE VIEW --创建一个视图DROP VIEW --从数据库中删除视图CREATE INDEX --为数据库表创建一个索引DROP INDEX --从数据库中删除索引CREATE PROCEDURE --创建一个存储过程DROP PROCEDURE --从数据库中删除存储过程CREATE TRIGGER --创建一个触发器DROP TRIGGER --从数据库中删除触发器CREATE SCHEMA --向数据库添加一个新模式DROP SCHEMA --    (全文共11420字)——点击此处阅读全文

发表于 @ 2005年09月01日 8:15 PM | 评论 (0)

第1页,共1页

导航

blog stats

文章

收藏

相册

Other

常用链接

存档


正在读取评论……