10G中SQLPLUS的PAGESIZE与HEAD的关系
set pagesize 0 , set heading on ,HEAD,SQLPLUS ,ORA 10G[@more@]前几天数据提取,发现SPOOL出来的数据是没有HEAD的.环境: LINUX AIX + ORA 10G , 脚本如下:------------------------------------------------#! /bin/sh. /home/oracle/.bash_profilesqlplus -s itrade/aaaaaa <<EOFset echo offset linesize 10000set long 2000set term off verify off feedback off set pagesize 0 spool /tmp/report.txt ;select count(*) as aa from tab;spool off ;exitEOF exit 0---------------------------------------------------而我们
关于java处理不同数据库字符集的数据同步
两个数据库字符集不一样,如何快速增量同步数据.[@more@]环境: DB-A 字符集:US7ASCII DB-B 字符集:ZHS16GBK 需求: 从DB-A中将一个表的中文数据通过JAVA定时任务同步到DB-B. DB-A库中表的信息如下: CREATE TABLE USER_INFO (USER_ID number, USER_NAME varchar2(50)); 如果用一般的方式来SELECT,和INSERT,不管客户端用什么样的字符集,数据到DB-B上肯定会显示乱码. 解决方法1 (在数据库实现) 解决思路:通过视图将数据转换成二进制数据,绕过字符集的转换,然后让目标库来读取. 1. 在DB-A库上创建视图:
PLSQL不规范的参数命名导致的问题
PLSQL代码编写过程中,对标识符的命名一定要规范,不然会引发一些非常莫名的问题...[@more@]我们先通过环境来引出问题:有一个PROCEDURE用来更新积分表. ****************************************************************************************************desc">heyf@VOUCHER>desc fi_bonus_user_amount; Name Type -------------------------- ------------------------------------ ID VARCHAR2(20) CORPORATION_ID
SELECT也需要COMMIT
SELECT (DBLINK) 需要 COMMIT来释放事务;[@more@]业务环境: A机器10.0.69.101 -- heyf B机器10.2.226.24 -- VOUCHER 有业务需求,B需要去连接A取数据,下面创建一个简单的环境. 在B机器上: TNSNAMES.ora heyf = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 10.0.69.101 )(PORT = 1521)) ) (CONNECT_DATA = (SERVICE_NAME = heyf) ) ) create">heyf@VOUCHER>create database link a connect to heyf identifie
Oracle (block clean out) oracle的块清除
Clean out有2种: fast commit cleanout delayed block cleanout[@more@] 1,如果一个事务(transaction)修改不超过10%buffer cache的数据块时,oracle做的是fast commit cleanout。2,如果一个事务(transaction)修改的块超过10% buffer cache,那么"超过的块"就执行delayed block cleanout,3,在事务commit前,修改的数据块已经写入硬盘,当发生commit时,oracle并不会把block重新读入内存来做cleanout,这样成本太高. 而是把cleanout留到下一次对此块的访问(select,update)时完成。 下面我们来简单看一下这两种情况: -
用SQLLOAD导入CLOB数据
10G,SUSE 9,SQLPLUS[@more@]1,创建表结构create table sqlload_test ( EMPNO number,ENAME varCHAR2(20),JOB varCHAR2(20),MGR number,SAL number,COMM number,DEPTNO number,resume clob)2,建立数据oracle@linux:~> cat > ulcase91.dat <<EOFResume for Mary ClarkCareer Objective: Manage a sales team with consistent record breakingperformance.Education: BA Business University of Iowa 1992Experience: 1992-1994 - Sales Support at MicroSales Inc.Won "Best Sales Support" award in 1993 and 199419
关于oracle 10G for suse 9 的rman: can't open target
刚在SUSE 9 上装完ORACLE 10G,并DBCA建了数据库,想对数据库作一个全备份.结果 oracle@linux:/> rman target /rman: can't open target[@more@]这是由于调用的是非Oracle的RMAN的缘故:oracle@linux:/> which rman/usr/X11R6/bin/rman在/usr/X11R6/bin/下存在一个名为rman的命令:oracle@linux:/> ./rman -helprman [-f <ASCII|roff|TkMan|Tk|Sections|HTML|XML|MIME|LaTeX|LaTeX2e|RTF|pod>] [-S(ource of man page passed in)] [-F(ormatted man page passed in)] [-r <man reference printf string>] [-l
全表复制过程创建脚本
能自动创建过程脚本,能让你直接输入源泉表名和目标表名就能创建以下链接中的全表复制过程.(第三部分) http://steven1981.itpub.net/post/7967/413828[@more@]--表复制过程NEWcreate or replace procedure hyf_create_sql(p_sour_tab in varchar2, p_dst_tab in varchar2) as /* -- 此存过能产生:一个用来从源表复制到目标表的存过; -- 要求在目标库上布置这个代码 ;(即 p_dst_tab必须为本地表) -- 使用: exec hyf_create_sql('sour_table_name[@dblink_name]','dst_table
成功通过ORACLE发送邮件
LINUX AS3+ORACLE 9.2||10.20.1 成功从ORACLE发送邮件...[@more@]测试环境:LINUX AS3 , ORACLE 9.0.2.4 SQL> select * from v$version;BANNER----------------------------------------------------------------Oracle9i Enterprise Edition Release 9.2.0.4.0 - ProductionPL/SQL Release 9.2.0.4.0 - ProductionCORE 9.2.0.3.0 ProductionTNS for Linux: Version 9.2.0.4.0 - ProductionNLSRTL Version 9.2.0.4.0 - ProductionSQL> select * from v$version;Oracle Database 10g Enterprise Edition Release 10.2.0.1.0
LINUX AS3 ,在安装9i后, 原有的10G出现监听问题
经历共享[@more@]1.LINUX AS3 , 原有10G , 数据库,监听,都正常.2.为了配置DATA GUARD,又装了9i. (选择9i也是迫不得已,另一台测试机内存只有128M)3.配置完9i后,回到10G(没有重新安装,主要是.bash_profile的修改)4.数据库启动正常.5.监听出现如下问题[oracle@ora1 oracle]$ lsnrctl statusLSNRCTL for Linux: Version 10.2.0.1.0 - Production on 29-APR-2007 08:37:52Copyright (c) 1991, 2005, Oracle. All rights reserved.Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC0)))TNS-12541: TNS:no listener TNS-12560: T
ORACLE中的物化视图创建
ORACLE中的物化视图基本操作(转载)[@more@]ORACLE中的物化视图创建物化视图是包括一个查询结果的数据库对像,它是远程数据的的本地副本,或者用来生成基于数据表求和的汇总表。物化视图存储基于远程表的数据,也可以称为快照。物化视图可以查询表,视图和其它的物化视图。通常情况下,物化视图被称为主表(在复制期间)或明细表(在数据仓库中)。对于复制,物化视图允许你在本地维护远程数据的副本,这些副本是只读的。如果你想修改本地副本,必须用高级复制的功能。当你想从一个表或视图中抽取数据时,你可以用从物化视图中抽取。对于数据
创建oracle快照的步骤
创建oracle快照的步骤[@more@]1、 创建快照之前需要在sys用户下运行catrep.sql(此操作需要一个大的回滚段), 并且给user授予CREATE ANY SNAPSHOT、ALTER ANY SNAPSHOT权限注:建立快照的两端数据库字符集最好一样。2、 user建立DBLINKCREATE DATABASE LINK TEST CONNECT TO SCOTT IDENTIFIED BY TIGER USING ‘TEST’;3、 user建快照 CREATE SNAPSHOT S_TEST REFRESH COMPLETE START WITH SYSDATE NEXT SYSDATE+1/24 AS SELECT * FROM SCOTT.TEST@TEST ;REFRESH语句具体语法如下:REFRESH specifies how and when Or
自动查看ALTER.LOG中的错误信息
(转载)[@more@]平台,LINUXsed -n "/^Mon Mar 1/,//p" /app/oracle/admin/serp/bdump/alert_serp.log| grep -E 'ORA-|WARNING' | awk '{printf("'$dbn'|'$wkd'|'$wkt'|"$0"n")}'
关于oradim 中的intpwd usrpwd
oradim 用于在WINDOWS命令方式下维护实例.关于其密码参数 intpwd usrpwd在这里作相关实验.[@more@]Microsoft Windows XP [版本 5.1.2600](C) 版权所有 1985-2001 Microsoft Corp.C:Documents and Settingsnew>set oracle_sid=heyfC:Documents and Settingsnew>orapwd file=d:oracleora90databasepwdheyf.ora password=heyf创建密码文件,并设密码为:heyfC:Documents and Settingsnew>oradim -startup -sid heyf -usrpwd heyf以HEYF密码启动,实例启动的同时,打开数据库C:Documents and Settingsnew>sqlplus /nologSQL*Plus: Rel