ORACLE中的参数文件是一个包含一系列参数以及参数对应值的操作系统文件,可以分为两种类型。它们是在数据库实例启动时候加载的,决定了数据库的物理结构、内存、数据库的限制及系统大量的默认值、数据库的各种物理属性、指定数据库控制文件名和路径等信息,是进行数据库设计和性能调优的重要文件。
初始化参数文件(Initialization Parameters Files),Oracle 9i之前,ORACLE一直采用PFILE方式存储初始化参数,该文件为文本文件。
服务器参数文件(Server Parameter Files),从Oracle 9i开始,Oracle引入了SPFILE文件,该文件为二进制格式,不能通过手工修改。
1:PFILE与SPFILE的区别
1:PFILE是文本文件的,而SPFILE是二进制格式的。PFILE文件可以用文本编辑器打开手工配置、而SPFILE不行,只能通过SQL命令在线修改。从操作系统上可以看到这两者的区别,初始化参数文件为ASCII文本文件,SPFILE为数据文件。
很多人有个很纳闷的疑问,为什么SPFILE是二进制文件,但是可以用more命令查看?如下所示
_size=3992977408
wgods.__java_pool_size=16777216
wgods.__large_pool_size=16777216
wgods.__shared_pool_size=234881024
wgods.__streams_pool_size=16777216
*.aq_tm_processes=0
*.audit_file_dest='/database/admin/wgods/adump'
*.background_dump_dest='/database/admin/wgods/bdump'
*.compatible='10.2.0.1.0'
*.control_files='/database/oradata/wgods/control01.ctl',
'/database/oradata/wgods/control02.ctl',
'/database/oradata/wgods/control03.ctl'
*.core_dump_dest='/database/admin/wgods/cdump'
*.db_block_size=8192
*.db_domain=''
*.db_file_multiblock_read_count=16
*.db_files=1024
*.db_name='wgods'
*.db_recovery_file_dest='/database/flash_recovery_area'
*.db_recovery_file_dest_size=2147483648
*.db_writer_processes=3
*.dispatchers='(PROTOCOL=TCP) (SERVICE=wgodsXDB)'
*.job_queue_processes=5
*.nls_territory='CHINA'
*.open_cursors=300
*.pga_aggregate_target=761266176
*.processes=150
*.remote_login_passwordfile='EXCLUSIVE'
*.sga_max_size=4294967296
*.sga_target=4294967296
*.undo_management='AUTO'
*.undo_tablespace='UNDOTBS1'
*.user_dump_dest='/database/admin/wgods/udump'
*.utl_file_dir='/database/flash_recovery_area/WGODS/logmnr_dict'
大家把这个文件用文本编辑器打开,就会发现确实是二进制文件,如下图所示:
2:SPFILE的修改是可以通过SQL命令在线修改,不再需要通过手工修改,对于动态参数所有更改可以立即生效,而PFILE的修改必须重启实例才能生效。
3:手动创
需要把查询出来的数据导出成Insert的语句。忽然发现不会用了。
上网查,找到一些,但都不尽如人意。
于是就写了这篇文章。助人助己。
在PL/SQL Developer左边的树状导航栏里,找到【Table】,任意选一张表,【右键】-【Export data】,如图
(工具栏-【Tools】-【Export Tables】亦可达到同样效果)
右边会出现数据库中所有的表,找到要导出数据的表,选中。
下半部分如下图。选中“SQL Inserts”选项卡,里面有个“Where clause”可以设置查询条件。设置好文件导出的路径(“Output file”),点击【Export】按钮,就可以导出INSERT语句了。
(P.S.:本文使用的 PL/SQL Developer Version 7.0.0.1050)
本文链接:http://www.cnblogs.com/memory4young/p/plsql-export-insert-script.html,转载请注明。
ORACLE基本数据类型(亦叫内置数据类型 built-in datatypes)可以按类型分为:字符串类型、数字类型、日期类型、LOB类型、LONG RAW& RAW类型、ROWID & UROWID类型。
在讲叙字符串类型前,先要讲一下编码。字符串类型的数据可依编码方式分成数据库字符集(CHAR/VARCHAR2/CLOB/LONG)和国际字符集(NCHAR/NVARCHAR2/NCLOB)两种。数据库中的字符串数据都通过字符集将字符转换为数字后(二进制),才存储到数据块中。通过不同的编码集转换,即便是相同的字符,也可能会转换成不同的二进制编码。这也是产生乱码的原因。数据库的编码格式一般是在创建数据库时指定的。当然也可以修改数据库的编码。
查看数据库视图所包含的数据类型:SELECT * FROM DBA_TYPES WHERE OWNER IS NULL.具体细节情况参见Oracle® Database SQL Language Quick Reference 10/11g 或官方文档
一 字符串类型
字符串数据类型还可以依据存储空间分为固定长度类型(CHAR/NCHAR) 和可变长度类型(VARCHAR2/NVARCHAR2)两种.
所谓固定长度:是指虽然输入的字段值小于该字段的限制长度,但是实际存储数据时,会先自动向右补足空格后,才将字段值的内容存储到数据块中。这种方式虽然比较浪费空间,但是存储效率较可变长度类型要好。同时还能减少数据行迁移情况发生。
所谓可变长度:是指当输入的字段值小于该字段的限制长度时,直接将字段值的内容存储到数据块中,而不会补上空白,这样可以节省数据块空间。
1.1:CHAR类型 CHAR(size [BYTE | CHAR])
CHAR类型,定长字符串,会用空格填充来达到其最大长度。非NULL的CHAR(12)总是包含12字节信息。CHAR字段最多可以存储2,000字节的信息。如果创建表时,不指定CHAR长度,则默认为1。另外你可以指定它存储字节或字符,例如 CHAR(12 BYTYE) CHAR(12 CHAR).一般来说默认是存储字节,你可以查看数据库参数
NLS_LENGTH_SEMANTICS的值。
注意:数据库的NLS_CHARACTERSET 为AL32UTF8,即一个汉字占用三到四个字节。如果NLS_CHARACTERSET为ZHS16GBK,则一个字符占用两个字节。
如果串的长度小于或等于250(0x01~0xFA), Oracle 会使用1 个字节来表示长度。对于所有长度超过250 的串,都会在一个标志字节0xFE 后跟有两个字节来表示长度。因此,如果有一个包含“Hello World”的VARCHAR2(80),则在块中可能如图12.-1 所示
1.2: NCHAR类型
这是一个包含UNICODE格式数据的定长字符串。NCHAR字段最多可以存储2,000字节的信息。它的最大长度取决于国家字符集。另外查询时,如果字段是NCHAR类型,则需要如下书写
SELECT translated_description FROM product_descriptions
WHERE translated_name = N'LCD Monitor 11/PM';
1.3 VARCHAR类型
不要使用VARCHAR数据类型。使用VARCHAR2数据类型。虽然VARCHAR数据类型目前是VARCHAR2的同义词,VARCHAR数据类型将计划被重新定义为一个单独的数据类型用于可变长度的字符串相比,具有不同的比较语义。
1.4: VARCHAR2类型
变长字符串,与CHAR类型不同,它不会使用空格