Oracle 常用技巧和脚本 and On database character set

SQL高级语句-CREATE DATABASE 用于创建数据库。 CREATE DATABASE 语句 CREATE DATABASE 用于创建数据库。 SQL CREATE DATABASE 语法 CREATE DATABASE database_name SQL CREATE DATABASE 实例 现在我们希望创建一个名为 "my_db" 的数据库。 我们使用下面的 CREATE DATABASE 语句: CREATE 阅读详情

 

http://www.itpub.net/276524.html

 

设置客户端字符集为US7ASCII
D:/>SET NLS_LANG=AMERICAN_AMERICA.US7ASCII
查看服务器字符集为US7ASCII
SQL> SELECT * FROM NLS_DATABASE_PARAMETERS;
PARAMETER VALUE
------------------------------ ----------------------------------------
NLS_CHARACTERSET US7ASCII

建立测试表
SQL> CREATE TABLE TEST (R1 VARCHAR2(10));

Table created.

插入数据
SQL> INSERT INTO TEST VALUES('
东北');

1 row created.

SQL> SELECT * FROM TEST;

R1
----------
东北

SQL> EXIT

 

如何查看 当前数据库的字符集? 在SQL*PLUS下,运行:. “select userenv('language') from dual;”

[Q]怎么样查看数据库字符集
[A]
数据库服务器字符集select * from nls_database_parameters,其来源于props$,是表示数据库的字符集。
客户端字符集环境select * from nls_instance_parameters,其来源于v$parameter,
表示客户端的字符集的设置,可能是参数文件,环境变量或者是注册表
会话字符集环境 select * from nls_session_parameters,其来源于v$nls_parameters,表示会话自己的设置,可能是会话的环境变量或者是alter session完成,如果会话没有特殊的设置,将与nls_instance_parameters一致。
客户端的字符集要求与服务器一致,才能正确显示数据库的非Ascii字符。如果多个设置存在的时候,alter session>环境变量>注册表>参数文件
字符集要求一致,但是语言设置却可以不同,语言设置建议用英文。如字符集是zhs16gbk,则nls_lang可以是American_America.zhs16gbk。

[Q]怎么样修改字符集
[A]8i
以上版本可以通过alter database来修改字符集,但也只限于子集到超集,不建议修改props$表,将可能导致严重错误。
Startup nomount;
Alter database mount exclusive;
Alter system enable restricted session;
Alter system set job_queue_process=0;
Alter database open;
Alter database character set zhs16gbk;

Oracle 常用技巧和脚本

1. 如何查看ORACLE的隐含参数?


ORACLE
的显式参数,除了在INIT.ORA文件中定义的外,在svrmgrl中用"show parameter *",可以显示。但ORACLE还有一些参数是以“_”,开头的。如我们非常熟悉的“_offline_rollback_segments”等。

这些参数可在sys.x$ksppi表中查出。

语句:“select ksppinm from x$ksppi where substr(ksppinm,1,1)='_'; ”




2.
如何查看安装了哪些ORACLE组件?

进入${ORACLE_HOME}/orainst/,运行./inspdver,显示安装组件和版本号。



3.
如何查看ORACLE所占用共享内存的大小?

可用UNIX命令“ipcs”查看共享内存的起始地址、信号量、消息队列。

在svrmgrl下,用“oradebug ipc”,可看出ORACLE占用共享内存的分段和大小。

example:

SVRMGR> oradebug ipc
-------------- Shared memory --------------

Seg Id Address Size
1153 7fe000 784
1154 800000 419430400
1155 19800000 67108864


4.
如何查看当前SQL*PLUS用户的sid和serial#?

在SQL*PLUS下,运行:

“select sid, serial#, status from v$session

where audsid=userenv('sessionid');”



5.
如何查看当前数据库的字符集?

在SQL*PLUS下,运行:

“select userenv('language') from dual;”

或:

“select userenv('lang') from dual;”



6.
如何查看数据库中某用户,正在运行什么SQL语句?

根据MACHINE、USERNAME或SID、SERIAL#,连接表V$SESSION和V$SQLTEXT,可查出。

SQL*PLUS
语句:

“SELECT SQL_TEXT FROM V$SQL_TEXT T, V$SESSION S WHERE T.ADDRESS=S.SQL_ADDRESS

AND T.HASH_VALUE=S.SQL_HASH_VALUE

AND S.MACHINE='XXXXX' OR USERNAME='XXXXX' --
查看某主机名,或用户名

/”

7.
如何删除表中的重复记录?

例句:

DELETE
FROM table_name a
WHERE rowid > ( SELECT min(rowid)
FROM table_name b
WHERE b.pk_column_1 = a.pk_column_1
and b.pk_column_2 = a.pk_column_2 );


8.
手工临时强制改变服务器字符集

以sys或system登录系统,sql*plus运行:“create database character set us7ascii;".
有以下错误提示:
* create database character set US7ASCII
ERROR at line 1:
ORA-01031: insufficient privileges
实际上,看v$nls_parameters,字符集已更改成功。但重启数据库后,数据库字符集又变回原来的了。
该命令可用于临时的不同字符集服务器之间数据倒换之用。
9.
怎样查询每个instance分配的PCM锁的数目

用以下命令:

select count(*) "Number of hashed PCM locks" from v$lock_element where bitand(flags,4)<>0

/

select count(*) "Number of fine grain PCM locks" from v$lock_element

where bitand(flags,4)=0

/

10.
怎么判断当前正在使用何种SQL优化方式?

用explain plan产生EXPLAIN PLAN,检查PLAN_TABLE中ID=0的POSITION列的值。

e.g.

select decode(nvl(position,-1),-1,'RBO',1,'CBO') from plan_table where id=0

/

11.
做EXPORT时,能否将DUMP文件分成多个?

ORACLE8I
中EXP增加了一个参数FILESIZE,可将一个文件分成多个:

EXP SCOTT/TIGER FILE=
(ORDER_1.DMP,ORDER_2.DMP,ORDER_3.DMP) FILESIZE=1G TABLES=ORDER;



其他版本的ORACLE在UNIX下可利用管道和split分割:

mknod pipe p

split -b 2048m pipe order & #
将文件分割成,每个2GB大小的,以order为前缀的文件:

#orderaa,orderab,orderac,...
并将该进程放在后台。

EXP SCOTT/TIGER FILE=pipe tables=order

 

 

如果能够保证这四个字符集是一致的,则在Export、Import过程中,ORACLE字符集就不用 发生转换。 可用以下办法检查数据库字符集: 通过InitXXXX.ora文件进行查看; 借助SQL 语句查看: select name,VALUE$ from SYS.PROPS$ WHERE name=‘NLS_CHARACTERSET’。

 

http://www.itpub.net/242761,2.html

 

http://www.itpub.net/2407.html

 

使用
imp help=y
可以看到imp的帮助。

mp expuser/password@SID file=file.dmp log=file.log ignore=y fromuser=user1,user2..........

 

D:/>exp scott/tiger file=a.dmp
D:/>imp test/test fromuser=scott tables=emp file=a.dmp
D:/>imp test/test tables=dept file=a.dmp

说明:
如果导出用户没有DBA权限,则导入用户可以不用指定fromuser、touser参数
如果导出用户拥有DBA权限,则导入用户也必须拥有DBA权限

你确信导出时客端字符集设置和服务端是是相同的吗?
如果不同会进行装换的这可能会造成数据损坏

(1)知道字符集查ID(得到十进制的ID)
例如:
1* SELECT NLS_CHARSET_ID('ZHS16GBK') FROM DUAL
SQL> /

NLS_CHARSET_ID('ZHS16GBK')
--------------------------
852

知道字符集ID查名字
SQL> SELECT NLS_CHARSET_NAME(852) FROM DUAL
SQL> /

NLS_CHAR
--------
ZHS16GBK

 

34字节转成十进制就为查到字符集ID

dmp存储的是导出客户端的字符集
你是没有办法由此得知原数据库的字符集的.

如果导出时客户端NLS_LANG和Server端不同
那么转换可能已经损坏了数据,那么你是没有办法使用这个dmp文件来正确恢复数据的

Q:

关于表空间问题——求救

我要把数据库A里的表X移植到数据库B,在数据库B中我新建了一张与A中完全一样的表,但是在imp文件是,导入数据到一部分时就出错:IMP-00058: ORACLE error 1653 encountered。
     
应该时提示空间不够吧,于是我就把数据库B中一些不用的表清空,还是一样的错误提示??请大家指教一下,到底是表空间不够,还是数据库用户空间不够导致? 2中不同的原因又该如何处理???
     
小妹在这里先感谢大家了,希望能和oracle高手及兴趣爱好者交流。QQ:416609165。

oerr ora 1653
01653, 00000, "unable to extend table %s.%s by %s in tablespace %s"
// *Cause:  Failed to allocate an extent for table segment in tablespace.
// *Action: Use ALTER TABLESPACE ADD DATAFILE statement to add one or more
//         files to the tablespace indicated.

 

向表空间中添加数据文件
ALTER TABLESPACE tablespace ADD DATAFILE filespec [autoextend_clause]
例子: ALTER TABLESPACE user_data ADD DATAFILE '/u01/oradata/userdata03.dbf' SIZE 200M;

 

S4 HANA 1809+折旧过账(AFAB/AFABN)凭证行数据存储逻辑变迁:从BSEG到ACDOCA的深度解析 本文深度解析了S4 HANA 1809+版本中折旧过账(AFAB/AFABN)凭证行数据存储逻辑的变迁,从传统的BSEG表迁移到ACDOCA表。文章详细探讨了这一变更的技术背景、官方设计意图及实际影响,包括数据存储量减小和系统性能提升等优势。同时提供了升级项目的应对策略和最佳实践建议,帮助用户顺利过渡到新的数据存储模型。 阅读详情

相关推荐

jmeter小白下载安装步骤

本文仅仅简单介绍了jmeter工具的下载安装,以及基础的操作步骤。

昔年@曦的博客 3492

关于字符集的测试报告

nls_lang用于设置客户端的字符集。影响sqlplus界面的语言。regedit:hkey_local_machine/software/oracle/home0nls_lang键值1、取值为‘US7ASCII或为空2、取值为‘simplified chinese_china.ZHS16GBKnls_characterset用于设置数据库内部字符集,决定数据记录保存的格式。1、取值

jiajia_hn_cn的专栏 1522

德国冯哈勃 Faulhaber2342L012空心杯减速电机带编码器

为了制作平衡车,我在淘宝上面买了一个 Faulhaber2342L012空心杯减速电机电机,具体参数如下: 一:电机参数 型    号:德国冯哈勃Faulhaber带编码器空心杯减速电机2342L012  12V每分 钟 120转 工作电压: 12V 空载转速:8100RPM(转每分钟) 减速后速:120RPM(转每分钟) 直     径:30mm

u011511430的专栏 1万+

修改数据库字符集为'us7ascii'

查看数据库当前数据集有两种方式:       a).select name,value$ from props$ where name like '%NLS_CHARACTERSET%',       b).select userenv('language') from dual;     1.常规方案修改数据库字符集       1).sys登陆数据库:conn  /  as sysdb

jccyww的博客 4610

Vue 实现华视身份证读卡器功能

在www.downcc.com下载“华视cvr100驱动”安装程序; 华视电子官网有相应的文档说明和程序下载 一、服务安装 选择安装目录: 启动读卡服务: 安装成功会有如图所示: 注意事项: 安装开发包必须使用管理员权限,因为windows服务和读卡器设备驱动程序均需要管理员权限,否则会安装失败。 win10需要修改组策略才有管理员权限。 二、服务的使用 打开浏览器,输入地址http://127.0.0.1:19196/mainpage,回车 点击openDevice: 点.

zyqgt960812的博客 6501

Sigrity System SI SerialLink模式进行SFP+协议仿真分析-PCB操作指导

Random(Rj):随机抖动,该抖动用高斯概率分布来描述,通常是由热噪声和其它随机噪声引起的,默认为1%UI RMS(平均值),即和标准值的偏差为1%UI。Random(Rj):随机抖动,该抖动用高斯概率分布来描述,通常是由热噪声和其它随机噪声引起的,默认为1%UI RMS(平均值),即和标准值的偏差为1%UI。Random(Rj):随机噪声,是由信号电压的随机波动引起的,默认为1mv RMS(平均值),即和标准值的偏差为1mv。

weixin_54787054的博客 501

Oracle 服务器 客户端 US7ASCII、 UTF8字符编码问题

在某次项目的实施上,发现从服务器Oracle数据库取过来的数据保存在客户端时中文显示有问题。遂使用SQL语句分别在服务器和客户端查询了下。 SELECT * FROM NLS_DATABASE_PARAMETERS; 得到 服务器:NLS_CHARACTERSET=US7ASCII; 客户端:NLS_CHARACTERSET=AL32UTF8;后BaiDu说将服务器和客户端含中

SquKun的博客 6005

2万字大厂面经:小米嵌入式面试题及参考答案(持续更新)

BIOS (Basic Input/Output System) 是一种存储在ROM中的固件程序,它为计算机提供了最基础的硬件初始化和服务。BIOS主要存在于传统的x86架构计算机中。嵌入式系统的启动流程取决于具体的硬件平台和所采用的操作系统。复位阶段:当系统通电或复位时,CPU进入复位状态。硬件初始化:CPU和必要的硬件设备(如内存控制器)被初始化。加载引导加载程序:引导加载程序(如U-Boot)被加载到内存中。执行引导加载程序:引导加载程序开始执行,初始化更多的硬件设备,并检测存储介质。

大模型大数据攻城狮的专栏 2529

解决ORACLE字符集为US7ASCII,插入数据中文乱码问题

1. 可以通过select * from nls_database_parameters where parameter ='NLS_CHARACTERSET';查到ORACLE的字符集 2. 如果为US7ASCII的话 ,在插入数据的时候需要把有中文的字段组以下处理: String name = "张三"; String temp = new String(name .getBytes("

skeven1688的专栏 9292

《YOLO系列模型的多模态项目》配置使用教程(必看内容)

在根目录的文件夹中用于存放的是我已经配置好的一些多模态融合模型,可结合专栏中相应的文章介绍,进一步了解测试其中内容。

Limiiiing的博客 4653

18、地下矿山中人工智能在区分真实微震事件与噪声信号的应用

本文提出一种基于遗传编程(GP)的新型经验模型,用于地下矿山中真实微震事件与噪声信号(特别是爆破信号)的自动区分。针对传统方法和常见机器学习算法存在的黑箱问题、过拟合及准确性不足等局限,GP模型通过符号回归和进化机制生成可解释的数学表达式,具备自动特征选择能力,有效提升了分类准确率。研究使用包含100个样本的真实数据库,结合敏感性分析优化模型参数,并与线性判别分析(LDA)进行对比,结果表明GP模型在分类性能上更具优势。该模型可应用于实时微震监测系统,提高矿山安全生产水平,降低误判带来的成本开销,具有良好的

assembly8low的博客 94

【exp/imp】将US7ASCII字符集的dmp文件导入到ZHS16GBK字符集的数据库中

【exp/imp】将US7ASCII字符集的dmp文件导入到ZHS16GBK字符集的数据库中   1.1  BLOG文档结构图     1.2  前言部分 1.2.1  导读和注意事项 各位技术爱好者,看完本文后,你可以掌握如下的技能,也可以学到一些其它你所不知道的知识,~O(∩_∩)O~: ① 如何将US7A

小麦苗DBA宝典 1万+

Xilinx系ZYNQ学习笔记(一)Vivado使用说明

vivado使用学习

贾saisai的博客 1873

oracle中character,oracle character set

-- 3.5 字符集的更改 ( P94 )-- 数据库创建以后,如果需要修改字符集,通常需要重建数据库,通过导入导出的方式来转换。也可以通过以下方式更改:ALTER DATABASE CHARACTER SET-- 注意修改数据库字符集时必须谨慎,修改之前一定要为数据库备份。由于不能回退这项操作,因此可能会造成数据丢失或者损坏。-- 这是最简单的转换字符集的方式,但并不是总是有效。这个命令在Ora...

weixin_33507566的博客 1196

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

Oracle Character set字符集

If the database has been created with the wrong character set, use the following to change the character set UPDATE SYS.PROPS$ SET VALUES$ = WE8ISO8859P1 WHERE NAME = NLS_CHARACTERSET; It

yangyibang的专栏 3212

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

CHANGING THE DATABASE OR NATIONAL CHARACTER SET

CHANGING THE DATABASE OR NATIONAL CHARACTER SET================================================In Oracle7 it is po...

cipanxiu3864的博客 253

Oracle中的character set 和 national character set

##CHARACTER SET specifies the character set the database uses to store data. You cannot change the database character set after creating the  database. The supported character sets and default value

linghao00的专栏 1万+

如何新建一个oracle数据库,ORACLE怎么新建数据库

新建Oracle数据库三种方法:1.通过运行Oracle Database Configuration Assistant创建配置或删除数据库(也可在命令行下输入dbca);2.用命令行的方式建立数据库3.通过运行自定义的批处理脚本(或create_ORACLE_SID.bat(create_ORACLE_SID.sql))来创建配置或删除数据库详述:1.通过运行Oracle Database C...

weixin_39669701的博客 1万+

PL/SQL database character set(AL32UTF8) and Client character set(ZHS16GBK) are different

PL/SQL database character set(AL32UTF8) and Client character set(ZHS16GBK) are different 转自:https://www.cnblogs.com/ZXdeveloper/p/6860858.html 启动PL/SQL Developer 报字符编码不一致错误 Database character set...

爱的叹息的专栏 1205

8i and 9i only: Alter Database Character Set - Valid Superset Definitions [ID 119164.1]

8i and 9i only: Alter Database Character Set - Valid Superset Definitions [ID 119164.1] 修改时间 01-SEP-2010     类型 FAQ     状态 PUBLISHED  Applies to: Oracle Server -

611

oracle create database

手工创建数据库完整步骤系统环境操作系统:RedHat 9.2 数据库:Oracle 9i安装路径:/home/oracle1、手工创建相关目录/home/oracle/admin/web/home/oracle/admin/web/bdump/home/oracle/admin/web/udump/home/oracle/admin/web/cdump/home/oracle/admin/web/

漂在上海 7664

PL/SQL database character set(AL32UTF8) and Client character set(ZHS16GBK) are d

oracle11 报错,在网上找到的答案。 引自:http://blog.163.com/magicc_love/blog/static/18585366220123111128283/   PL/SQL database character set(AL32UTF8) and Client character set(ZHS16GBK) are different  启动PL/...

Rambo 159

Change Database Character Encoding under Oracle.

[color=red]** There is an immediately way at the end of this document. But I strongly recommended you to read this document line by line. [/color] The approaches are: Migrating Character Data Us...

飘零 268

使用CREATE DATABASE语句创建数据库

设置数据库环境 export ORACLE_SID=newcdb export ORACLE_BASE=/u01/app/oracle export ORACLE_HOME=ORACLEBASE/product/19.0.0/dbhome1exportPATH=ORACLE_BASE/product/19.0.0/dbhome_1 export PATH=ORACLEB​ASE/product/19.0.0/dbhome1​exportPATH=ORACLE_HOME/bin:$PATH export |

weixin_39568073的博客 9401

oracle查询字段字符集转换,oracle字符集的更改【转】

2. 字符集的更改数据库创建以后,如果需要修改字符集,通常需要重建数据库,通过导入导出的方式来转换。我们也可以通过以下方式更改ALTER DATABASE CHARACTER SET注意:修改数据库字符集时必须谨慎,修改之前一定要为数据库备份。由于不能回退这项操作,因此可能会造成数据丢失或者损坏。这是最简单的转换字符集的方式,但并不总是有效。这个命令在Oracle8时被引入Oracle,这个操作在...

weixin_33249666的博客 1382
上一篇: oracle imp字符集问题的解决
下一篇: oracle里的常用命令
ThomasBoxing
博客等级 码龄21年 2粉丝 20原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值