Oracle 系统表大全
数据字典dict总是属于Oracle用户sys的。 1、用户: select username from dba_users; 改口令 alter user spgroup identified by spgtest; 2、表空间: select * from dba_data_files; select * from dba_tablespaces;//表空间 select tablespace_name,sum(bytes), sum(blocks) from dba_free_space group by tablespace_name;//空闲表空间 select * from dba_data_files where tablespace_name='RBS';//表空间对应的数据文件 select * from dba_segments where tablesp
Oracle行列转换问题
--列转行CREATE TABLE t_col_row(ID INT,c1 VARCHAR2(10),c2 VARCHAR2(10),c3 VARCHAR2(10));INSERT INTO t_col_row VALUES (1, 'v11', 'v21', 'v31');INSERT INTO t_col_row VALUES (2, 'v12', 'v22', NULL);INSERT INTO t_col_row VALUES (3, 'v13', NULL, 'v33');INSERT INTO t_col_row VALUES (4, NULL, 'v24', 'v34');INSERT INTO t_col_row VALUES (5, 'v15', NULL, NULL);INSERT INTO t_col_row VALUES (6, NULL, NULL, 'v35');INSERT INTO t_col_row VALUES (7, NULL, NULL, NULL);COMMIT;SELECT * FROM t_col_row;SELECT id, 'c1
oracle rowid举例
1.创建一临时表 create table test_rowid (id number, row_id rowid); 2.插入一行记录 insert into test_rowid values(1,null); 3.修改刚插入的记录 update test_rowid set row_id = rowid where id = 1; 4.查看rowid select rowid,row_id from test_rowid; 返回结果为: rowid row_id AAAO0DAAJAAAAMYAAA AAAO0DAAJAAAAMYAAA Oracle的物理扩展ROWID有18位,每位采用64位编码,分别用A~Z、a~z、0~9、+、/共64个字符表示。A表示0,B表示1,……Z表示25,a表示26,……z表示51,0表示52,……,9表示61,+表示62,/表示63。 ROWID具体划分可
Oracle面试题集锦-技术篇
本文是Oracle技术人员求职面试题集锦,答案仅供参考…… 1. 解释冷备份和热备份的不同点以及各自的优点 解答:热备份针对归档模式的数据库,在数据库仍旧处于工作状态时进行备份。而冷备份指在数据库关闭后,进行备份,适用于所有模式的数据库。热备份的优点在于当备份时,数据库仍旧可以被使用并且可以将数据库恢复到任意一个时间点。冷备份的优点在于它的备份和恢复操作相当简单,并且由于冷备份的数据库可以工作在非归档模式下,数据库性能会比归档模式稍好。(因为不必将archive log写入硬盘) 2. 你必须利用备份恢复数据库,但
continue and break
continue 语句停止循环的当前迭代,并开始新的迭代。 continue [label];可选的 label 参数指定 continue 应用于哪条语句。 说明只能在 while、do...while、for、或 for...in 循环内使用 continue 语句。 执行 continue 语句会停止当前循环的迭代,并从循环的开始处继续程序流程。这样对不同的循环类型有如下影响: while 和 do...while 循环检查它们的条件,如果条件为 true,则再次执行循环。 for 循环执行它们的递增表达式,如果测试表达式为 true,则再次执行循环。 for...in 循环继续进行指定变量的下一个字段,并再次执行循环。 示例
12个球称3次的问题
分三组:每组四个,第一组编号1-4,第二组5-8,第三组9-12. 第一次称:天平左边放第一组,右边放第二组。 A 第一种可能:平衡。则不同的在第三组。 接下来可以第二次称,在左边放第9、10、11号,右边放1、2、3号三个正常的。 a. 如果平衡,则12号是不同的; 再将12同1称,则可以判断12是 重还是轻b. 如果左重右轻,则不同的在9、10、11号中,而且比正常球重。再称一次:9放左边,10放右边,如果平衡,则11号是不同的且是重的;如果左重右轻,则9号是不同的且是重的,如果右重左轻,则10号是不同的且是重的。 c. 如果左轻右重,道理同b B 第二
函数参数的传递三种方式(转载)
一. 三道考题开讲之前,我先请你做三道题目。(嘿嘿,得先把你的头脑搞昏才行……唉呀,谁扔我鸡蛋?)1. 考题一:程序代码如下:void Exchg1(int x, int y) { int tmp; tmp=x; x=y; y=tmp; printf(“x=%d,y=%dn”,x,y)}void main(){ int a=4,b=6; Exchg1 (a,b) ; printf(“a=%d,b=%dn”,a,b)}输出的结果:x=____, y=____a=____, b=____问下划线的部分应是什么,请完成。2. 考题二:代码如下。Exchg2(int *px, int *py){ int tmp=*px; *px=*py; *py=tmp; print(“*px=%d,*py=%dn”,*px,*py);}main(){ int a=4; int b=6;
考题分析--直接短语 句柄
从供选择的答案中,选出应填入下面叙述中{ }内的最确切的解答,把相应编号写在答卷的对应栏内。?假设某程序语言的文法如下:?S→a|b|(T)?T→TdS|S?其中:Vt={a,b,d,(,)},Vn={S,T},S是开始符号。?考查该文法,称句型(Sd(T)db)是S的一个A。其中B是句柄;C是素短语;D是该句型的直接短词;E是短语。?供选择的答案?A:①最左推导 ②最右推导 ③规范推导 ④推导?B:①S ②b ③(T) ④Sd(T)?C:①S ②b ③(T) ④Sd(T)?D:①S ②S,(T),b?③S,(T),TdS,b ④(Sd(T)db)?E:①(Sd(T)db) ②d(T) ③Td ④Sd(T)d?【解析】?
关于字符串中存在中文字符的问题
现在需要查找某个字段上的值是否存在非数字类型的字符,可以通过LENGTH和LENGTHB来判断。如果返回值不同则该字段中存在中文字符。LENGTH(string1) 返回以字符为单位的长度.LENGTHB(string1) 返回以字节为单位的长度.11:33:47 SQL> select lengtHB('鱼3423432342_余YCZ'), lengTH('鱼3423432342_余YCZ') from dual;LENGTHB('鱼3423432342_余YCZ' LENGTH('鱼3423432342_余YCZ')---------------------------- ----------------------------20 16Executed in 0.08 seconds如果需要截除非数字类的字符,目前只找到这样类型的才可以用以下的方
18位身份证标准的详细规定、校验位的计算方法
18位身份证标准的详细规定、校验位的计算方法18位身份证标准在国家质量技术监督局于1999年7月1日实施 的GB11643-1999《公民身份号码》中做了明确的规定。GB11643-1999《公民身份号码》为GB11643-1989《社会保障号码》的修订版,其中指出将原标准名称“社会保障号码”更名为“公民身份号码”,另外GB11643-1999《公民身份号码》从实施之日起代替GB11643-1989。GB11643-1999《公民身份号码》主要内容如下: 一、范围 该标准规定了公民身份号码的编码对象、号码的结构和表现形式,使每个编码对象获得一个唯一的、不变的法定号码。 二、编码对
oralce定时执行存储过程任务设置步骤详细
oralce定时执行存储过程任务设置步骤详细:【 功 能 描 述】:每隔一分钟自动向getSysDate表中插入当前的系统时间。【一、创测试表】create table getSysDate(test date);【二、创要定时执行的存储过程】create or replace procedure insertSysDate as begin insert into getSysDate values (sysdate);end ;【三、创建JOB,即创建待执行的定时任务过程】variable job1 number;begindbms_job.submit(:job1,'insertSysdate;',sysdate,'sysdate+1/1440');end;【四、启动JOB,即启动并运行定时任务过程】begindbms_job.run(:job1);e
索引的使用
select语句是如何来使用索引的?select * from t1 ; --不能用索引,全表扫描select * from t1 where age > 20;--能用age上的索引select * from t1 where name like '李%';--能用上name上的索引select * from t1 where xh <45;--能用上xh上的索引;select * from t1 where age > 20;--能用索引select * from t1 where age+10>30;--不能用age上的索引--<1>规则1:索引的字段不能参与运算select * from t1 where substr(name,1,1)='李';--不能用索引--<2>规则2:索引的字段上不能使用函数 se
Sequences 的作用
create sequence seq2 start with 0 --起始值 increment by 1 --步长 maxvalue 4999 --最大值 minvalue 0 --最小值 cycle --循环 cache 4 --缓存4个数 create table testa( ins number(4) primary key, nm varchar2(20)); -- Created on 2007-10-17 by YCZ declare -- Local variables here i integer;begin -- Test statements here for i in 1..5000 loop begin insert into testa(ins,nm) values (seq2.nextval,'N'); com
oracle中几个特殊的函数
1、全角转半角函数 TO_SINGLE_BYTE 2、数字转英文,利用to_char、to_date 3、sys_guid()1、全角转半角函数 TO_SINGLE_BYTESQL> select TO_SINGLE_BYTE('oracle') from dual;TO_SINGLE_BYTE('ORACLE')------------------------------oracle2、数字转英文,利用to_char、to_dateSQL> select to_char(to_date('12345','J'),'Jsp') en from dual;en----------------------------------------Twelve Thousand Three Hundred Forty-Five不过有限制:一是长度的限制,二是不能转换带小数的SQL> select to_char(to_date('888
SQL*PLUS命令的使用大全
Oracle的sql*plus是与oracle进行交互的客户端工具。在sql*plus中,可以运行sql*plus命令与sql*plus语句。 我们通常所说的DML、DDL、DCL语句都是sql*plus语句,它们执行完后,都可以保存在一个被称为sql buffer的内存区域中,并且只能保存一条最近执行的sql语句,我们可以对保存在sql buffer中的sql 语句进行修改,然后再次执行,sql*plus一般都与数据库打交道。 除了sql*plus语句,在sql*plus中执行的其它语句我们称之为sql*plus命令。它们执行完后,不保存在sql buffer的内存区域中,它们一般用来对输出的结果进行格式化显示,以便于
用sqlplus进行copy数据的问题
今天用sqlplus进行copy数据,发现这个Error: ORA-01653: unable to extend table SX97.JNSX_JYZ by 128 in tablespace TB_93_03。意思是说不能对表进行扩展,怀疑是表空间TB_93_03的空间不够。既然在不能对TB_93_03表空间进行扩展的情况下,是否可以将从CMPR库中的表SX_JYZ指定给SXBK库的特定一个表空间?一、先在SXBK库中找出所有表空间的情况:select TABLESPACE_NAME, sum(bytes)/1024/1024 from dba_free_space group by TABLESPACE_NAME;TB_93_03 32.1875TB_97_01 239.125TB_97_02 44.75TB_97_04 2205TB_97_05 80.625现发现TB_97_01有
菜鸟打造30秒清除系统垃圾批处理
这篇文章讲一下网上流传很广的一个“30秒清除系统垃圾”的批处理,本文站在新手的角度写的,哪怕你不懂一点批处理,这个文章你也可以看懂的。 先说一些这个批处理中用到的一些基本命令: @:加在命令行的最前面,表示运行时不显示这一行的命令行(只能影响当前行); echo:表示显示此命令后的字符; echo off:表示在此语句后所有运行的命令都不显示命令行本身; del:删除 /f:强制删除 /s: 删除当前文件夹及其所有子文件夹的文件 /q:不要求确认; rd:一个删除子目录的命令; md:创建一个文件夹; pause:运行此命令会暂停批处理的执行,并在屏
关于字符型转换成日期型的问题
15:13:46 SQL> 15:13:46 SQL> CREATE TABLE ycz_test_1 2 (row_id varchar2(100), 3 start_dt varchar2(100), 4 end_dt varchar2(100)); Table created Executed in 0.02 seconds15:13:47 SQL> CREATE TABLE ycz_test_2 2 (row_id varchar2(100), 3 start_dt date, 4 end_dt date); Table created Executed in 0.03 seconds15:13:47 SQL> insert into ycz_test_1 2 values('1','',''); 1 row inser
Oracle数据的导入和导出(Excel)
一般导入数据到Oracle有几种方法!这可是经验之谈哦!分类: Coder 前几天搞了下将excel表导入oracle数据库的问题,连查带问带自己摸索,将自己弄过的方法写出来和大家交流。这些方法也可以用于将其它格式的数据导入到oracle中,这里只是以excel为例。方法一,使用SQL*Loader这个是用的较多的方法,前提必须oracle数据中目的表已经存在。大体步骤如下:1 将excel文件另存为一个新文件比如文件名为text.txt,文件类型选文本文件(制表符分隔),这里选择类型为csv(逗号分隔)也行,但是在写后面的control.ctl时要将字段终止符改为','(field
甜死MM的几句话
1. boy:我可以向你问路吗?girl:到哪里?boy:到你心里. 2.boy:你的腿一定很累吧?!girl:为什么?boy:因为你在我的脑海里跑了一整天 3.boy:(看着她的衬衫标签)girl:你在干嘛?boy:哦,我想知道你是不是天堂制造的. 4.boy:我今天很不顺利,看见漂亮女生会让我心情好一点,你可以为我笑一下吗? 5.boy:很抱歉,我是艺术家,凝视美女是我的工作. 6.boy:可以借我你的手机用一下吗?girl:干嘛?boy:我要打电话给我妈告诉她我看到了一个绝世大美女,她的儿媳妇有着落了. 7.boy:今天的雨真大.girl:是啊boy:那是因为老天对着你流口水呢. 8.boy:相信我,我会让你成