扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
oracle查询出来的数据消除重复数据的具体步骤如下:
创新互联是一家集网站建设,康平企业网站建设,康平品牌网站建设,网站定制,康平网站建设报价,网络营销,网络优化,康平网站推广为一体的创新建站企业,帮助传统企业提升企业形象加强企业竞争力。可充分满足这一群体相比中小企业更为丰富、高端、多元的互联网需求。同时我们时刻保持专业、时尚、前沿,时刻以成就客户成长自我,坚持不断学习、思考、沉淀、净化自己,让我们为更多的企业打造出实用型网站。
1、首先我们查看表中重复的数据。
2、然后我饿美女使用distinct去除函数查询出去掉重复后的数据。
3、然后我们创建新表把去掉重复的数据插入到新表中。
4、最后使用truncate清空原表中的数据。
5、再向原表中插入新表中重复的数据,即可达到去重复数据的效果。
首先便是这Trim函数。Trim 函数具有删除任意指定字符的功能,而去除字符串首尾空格则是trim函数被使用频率最高的一种。语法Trim ( string ) ,参数string:string类型,指定要删除首部和尾部空格的字符串返回值String。函数执行成功时返回删除了string字符串首部和尾部空格的字符串,发生错误时返回空字符串("")。 如果参数值为null时,会抛出空指针异常。在oracle中,trim使用的形式多为人rtrim()与ltrim()两种,分别为去除字符串右边空格与去除字符串左边空格。
当然trim的功能不止如此,下面进行细致的介绍,这里我多以去除字符串空格为例。
我们看下trim函数的语法描述:trim( [ { {leading|trailing|both} [trim_character]|trim_character} from] trim_source
1)、不使用任何参数
SQL select trim(' 11 ') aa from dual;
AA
--
11
这是最常见的一种使用方法,都使用默认的参数,默认情况下TRIM会同时删除字符串前后出现的空格。
2)、使用both参数,效果等同于方法一不使用任何参数
SQL select trim(both from ' 11 ') aa from dual;
AA
--
11
“BOTH”参数表示同时去除字符串前后所指定的内容(默认情况下删除空格)。
3)、使用leading与trailing参数
SQL select trim(leading from ' 11 ') aa from dual;
AA
----
11
SQL select trim(trailing from ' 11 ') aa from dual;
AA
-----
11
从结果中得分隔符'-',可以发现使用leading参数可以去除字符串右端的空格,而trailing参数则可以去除字符串左端的空格。正如oracle提供的rtrim()与ltrim()。
4)、使用trim_character参数
trim_character参数改变了“删除空格”的默认行为。如果想要删除字符串'xxxxWORLDxxxx'前后出现的“x”,“trim_character”参数就派上用场了。
SQL select trim('x' from 'xxxxWORLDxxxx') aaaaa from dual;
AAAAA
-----
WORLD
trim_character配合“both”、“trailing”和“leading”三个参数使用效果如下,与之前演示类似。看结果,不赘述。
SQL select trim('x' from 'xxxxWORLDxxxx') aaaaa from dual;
AAAAA
-----
WORLD
SQL select trim(both 'x' from 'xxxxWORLDxxxx') aaaaa from dual;
AAAAA
-----
WORLD
SQL select trim(trailing 'x' from 'xxxxWORLDxxxx') aaaaa from dual;
AAAAA
---------
xxxxWORLD
SQL select trim(leading 'x' from 'xxxxWORLDxxxx') aaaaa from dual;
AAAAA
---------
WORLDxxxx
必须注意的一点是这里的“trim_character”参数只允许包含一个字符,不支持多字符。trim不能满足我们去除多字符要求,但是我们可以使用rtrim和ltrim来处理。
1)使用rtrim
SQL select rtrim('ORxxxxWORLDxxxxOR','OR') aaaaa from dual;
AAAAA
---------------
ORxxxxWORLDxxxx
2)使用ltrim
SQL select ltrim('ORxxxxWORLDxxxxOR','OR') aaaaa from dual;
AAAAA
---------------
xxxxWORLDxxxxOR
3)联合使用RTRIM和LTRIM函数达到我们的目的
SQL select rtrim(ltrim('ORxxxxWORLDxxxxOR','OR'),'OR') aaaaa from dual;
AAAAA
-------------
xxxxWORLDxxxx
使用rtrim和ltrim函数时的注意事项:“OR”不表示整个“OR”字符串进行匹配,而是发现任意的字符“O”或字符“R”均做删除操作。
对于trim函数的应用就介绍到,下面介绍一下replace函数,个人觉得replace函数在去空格时更好用。replace 函数用第三个表达式替换第一个字符串表达式中出现的所有第二个给定字符串表达式。来看下replace函数的语法描述:replace('string_replace1','string_replace2','string_replace3')
'string_replace1' 待搜索的字符串表达式,string_replace1 可以是字符数据或二进制数据。
'string_replace2' 待查找的字符串表达式,string_replace2 可以是字符数据或二进制数据。
'string_replace3' 替换用的字符串表达式,string_replace3 可以是字符数据或二进制数据。
返回类型,如果 string_replace(1、2 或 3)是支持的字符数据类型之一,则返回字符数据;如果 string_replace(1、2 或 3)是支持的 binary 数据类型之一,则返回二进制数据。
这里我们依然以去空格为例。
SQL select replace(' aa kk ',' ','') abcd from dual;
ABCD
----
aakk
与使用trim函数的结果进行对比,我们可以发现,使用replace函数不仅可以去除字符串两端的空格,也可去除字符串内部的空格。
当然,如果只是要去除字符串两端的空格,使用trim函数效率会更高。
实现方法: 1、 开始->设置->控制面板->管理工具->服务 停止所有Oracle服务。 2、 开始->程序->Oracle - OraHome81->Oracle Installation Products-> Universal Installer 卸装所有Oracle产品,但Universal Installer本身不能被...
oracle数据库大小写敏感设置
将sec_case_sensitive_logon初始化参数设置为false后就不区分密码大小写了。
sql show parameter sec_case_sensitive_logon
name type value
------------------------------------ ----------- ------------------------------
sec_case_sensitive_logon boolean true
sql
sql alter system set sec_case_sensitive_logon = false;
system altered.
sql
conn / as sysdba
alter system set sec_case_sensitive_logon = false;
sql conn test2/test2
connected.
sql conn test2/test2
connected.
sql
需要记住的是,即使大小写敏感密码参数没有启用,在保存密码时也是区分了大小写的,以便以后在启用大小写敏感参数时有效,
下面的代码先禁用了大小写敏感密码,然后创建了一个包含大小写字符密码的用户。
没有什么简便的方法,但是你可以通过查系统表来减少你写语法的工作,例如:
select 'AND ' ||COLUMN_NAME||' IS NOT NULL' from all_tab_columns where table_name = 'table_name'
这样这个表的所有字段就自动组成了条件语句。
第一、手工删除Oracle数据库
以下操作用oracle用户登录且都要登入数据库 sqlplus / as sysdba
1、关闭数据库
shutdown immediate;
2、数据库开启到mount状态
startup mount;
3、设置数据库处于静默状态,DBA能安全地执行某些操作,这些操作要求从当前非DBA用户中隔离出来操作。
alter system enable restricted session;
4、删除数据库
drop database;
第二、手工创建Oracle数据库
登录oracle用户
1、修改.bash_profile文件
[oracle@sql ~]$ vim .bash_profile
将“ORACLE_SID=TEST”改成“ORACLE_SID=vfast”,保存退出
重新加载([oracle@sql ~]$ source .bash_profile )或者重启系统
2、新建初始化文件
[oracle@sql ~]$ vim $ORACLE_HOME/dbs/init$ORACLE_SID.ora
初始化文件内容从日志中恢复
[oracle@sql ~]$ cd /oracle/app/admin/TEST/bdump
查看日志文件
[oracle@sql bdump]$ tail -f -n 200 alert_TEST.log
复制如下到初始化文件中,保存并退出
3、建立密码文件
[oracle@sql ~]$ orapwd file=$ORACLE_HOME/dbs/orapw$ORACLE_SID password=123456 force=y
在/oracle/app/oracle/product/10.2.0/db_1/dbs目录下会生成orapwvfast文件(可删除之前的数据库密码文件[oracle@sql dbs]$ rm orapwTEST)。
4、建立数据库安装所需目录
[oracle@sql dbs]$ mkdir -p $ORACLE_BASE/admin/$ORACLE_SID/adump
[oracle@sql dbs]$ mkdir -p $ORACLE_BASE/admin/$ORACLE_SID/bdump
[oracle@sql dbs]$ mkdir -p $ORACLE_BASE/admin/$ORACLE_SID/pfile
[oracle@sql dbs]$ mkdir -p $ORACLE_BASE/admin/$ORACLE_SID/cdump
[oracle@sql dbs]$ mkdir -p $ORACLE_BASE/admin/$ORACLE_SID/dpdump
[oracle@sql dbs]$ mkdir -p $ORACLE_BASE/admin/$ORACLE_SID/udump
在/oracle/app/oradata目录下创建vfast目录
[oracle@sql oradata]$ mkdir vfast
5、建立spfile文件(也可不做)
SQL startup nomount
SQL create spfile from pfile;
6、建立数据库
编写一个脚本
[oracle@sql ~]$ vim /home/oracle/createDB.sql
运行脚本
SQL @/home/oracle/createDB.sql
7、查看库名是否创建成功
SQL select name from v$database;
8、建数据字典试图(3-5分钟左右)
SQL @/$ORACLE_HOME/rdbms/admin/catalog.sql
9、建存储过程包(30分钟左右)
SQL @/$ORACLE_HOME/rdbms/admin/catproc.sql
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流