随笔分类 - Oracle

摘要: Oracle 外连接 (1)左外连接 (左边的表不加限制) (2)右外连接(右边的表不加限制) (3)全外连接(左右两表都不加限制) 外连接(Outer Join) outer join则会返回每个满足第一个(顶端)输入与第二个(底端)输入的联接的行。它还返回任何在第二个输入中没有匹配行的第一个输入阅读全文
posted @ 2018-03-15 10:52 残星 阅读(198) | 评论 (0) 编辑
摘要: PL/SQL查询时,如果Number(17)以上的大数,会显示为科学计数法 解决方法: TOOLS->PREFERENCES->WINDOW TYPE->SQL WINDOW下选中Number fields to_char即可。阅读全文
posted @ 2018-01-24 17:25 残星 阅读(1415) | 评论 (0) 编辑
摘要: Oracle11g密码过期 连接Oracle,以root用户登陆,输入以下命令 结果显示: 结果显示密码有效期是180天 输入命令: 结果显示: 进行以上步骤之后需要改变密码,否则还会出现password has expired异常 改变密码的命令 如果账号被锁住,则需要解锁命令阅读全文
posted @ 2018-01-22 09:36 残星 阅读(121) | 评论 (0) 编辑
摘要: With查询语句不是以select开始的,而是以“WITH”关键字开头 可认为在真正进行查询之前预先构造了一个临时表,之后便可多次使用它做进一步的分析和处理 WITH Clause方法的优点 增加了SQL的易读性,如果构造了多个子查询,结构会更清晰;更重要的是:“一次分析,多次使用”,这也是为什么会阅读全文
posted @ 2018-01-16 10:21 残星 阅读(40587) | 评论 (0) 编辑
摘要: 一菜单方式: 打开plsql,点击【File】-【New】-【Database link】,打开如下图所示窗口 填好各项信息后,点击【Apply】即可完成Database Link的创建。 二SQL方式 其中, db_1是db link的名称; db_2_user是DB2这台机器上源数据库的用户名;阅读全文
posted @ 2018-01-12 16:13 残星 阅读(12851) | 评论 (0) 编辑
摘要: 1、拼接字符串 1)可以使用“||”来拼接字符串 2)通过concat()函数实现 注:oracle的concat函数只支持两个参数的方法,即只能拼接两个参数,如要拼接多个参数则嵌套使用concat可实现,如: 2、截取字符串 SUBSTR(string,start_position,[length阅读全文
posted @ 2018-01-10 16:44 残星 阅读(3362) | 评论 (0) 编辑
摘要: /**************日期********************/1.select trunc(sysdate) from dual --2013-01-06 今天的日期为2013-01-062.select trunc(sysdate, 'mm') from dual --2013-01阅读全文
posted @ 2017-10-10 10:21 残星 阅读(1311) | 评论 (0) 编辑
摘要: 含义解释: decode(条件,值1,返回值1,值2,返回值2,...值n,返回值n,缺省值) 该函数的含义如下:IF 条件=值1 THEN RETURN(翻译值1)ELSIF 条件=值2 THEN RETURN(翻译值2) ......ELSIF 条件=值n THEN RETURN(翻译值n)EL阅读全文
posted @ 2017-10-09 16:36 残星 阅读(98) | 评论 (0) 编辑
摘要: 启动数据库实例,分为两步:第一步,启动监听;第二步,启动数据库实例。 一、如何启动数据库实例 1.进入到sqlplus启动实例 --“切换到oracle用户” su - oracle --“打开监听” lsnrctl start --“进入到sqlplus” sqlplus /nolog --“连接阅读全文
posted @ 2017-08-16 17:35 残星 阅读(2863) | 评论 (0) 编辑
摘要: select name from v$database; select instance_name from v$instance; // 查看实例状态 >select instance_name, status from v$instance show parameter instance阅读全文
posted @ 2017-08-16 15:24 残星 阅读(316) | 评论 (0) 编辑
摘要: SQL>START file_name or SQL>@ file_name 1 .sqlplus system/system@srv 2. sql>@c:\a.sql (执行此命令前将a.sql 拷到C盘根目录) sqlplus system/system@srv @a.sql 或者登录sqlpl阅读全文
posted @ 2017-08-08 10:05 残星 阅读(22553) | 评论 (1) 编辑
摘要: 1、Oracle监听启动命令:lsnrctl start 2. sqlplus 登录数据库 3.OS版本及Oracle版本 select banner from v$version; 4.查询该数据库的实例名 select name from v$database; 5.查询该用户下所有的表 sel阅读全文
posted @ 2017-08-03 16:03 残星 阅读(2560) | 评论 (0) 编辑
摘要: 经常要用数据库,让他自己启动的话,开机太慢,所以用命令启动方便点。 1.开启: 在运行中输入cmd,进入控制台,lsnrctl start回车,提示启动监听成功后 net start OracleServiceORCL。 2 关闭 在运行中输入cmd,进入控制台,lsnrctl stop回车,提示启阅读全文
posted @ 2017-08-02 10:47 残星 阅读(606) | 评论 (0) 编辑
摘要: 1.复制表结构及数据到新表 CREATE TABLE 新表 SELECT * FROM 旧表 如我使用的:CREATE TABLE DM_ZRR_QX_GNS AS SELECT * FROM DM_QX_GNS 2.只复制表结构到新表 CREATE TABLE 新表 SELECT * FROM 旧阅读全文
posted @ 2017-07-26 09:45 残星 阅读(15214) | 评论 (0) 编辑
摘要: 1. 下载instantclient-basic-win32-11.2.0.1.0 (oracle官网下载地址:http://www.oracle.com/technetwork/topics/winsoft-085727.html , 下载地址2:http://download.csdn.net/阅读全文
posted @ 2017-07-03 11:58 残星 阅读(248) | 评论 (0) 编辑
摘要: 原文地址:安装Oracle11gR2先决条件检查失败的详细解决处理过程 作者:四海名汀 最近在32位Win7系统下安装Oracle11g发现一系列错误,现将详细的错误解决过程记录如下,以供大家参考。 一、错误信息 当安装到“先决条件检查” 时,提示如下图所示的错误: 1、物理内存—详细信息:物理内存阅读全文
posted @ 2017-07-03 11:43 残星 阅读(9385) | 评论 (0) 编辑
摘要: 导入dmp文件,需要知道这个dmp文件创建的用户。因此需要先创建用户,并授权给它。 (1)用户的创建 首先,以system用户登录Oracle SQL Developer 其次,在sql工作表(可以用快捷键ctrl+shift+w)中输入: create user gzds identified b阅读全文
posted @ 2017-07-03 11:11 残星 阅读(295) | 评论 (0) 编辑
摘要: Case具有两种格式。简单Case函数和Case搜索函数。--简单Case函数CASE sex WHEN '1' THEN '男' WHEN '2' THEN '女'ELSE '其他' END--Case搜索函数CASE WHEN sex = '1' THEN '男'...阅读全文
posted @ 2015-01-23 16:46 残星 阅读(178) | 评论 (0) 编辑
摘要: 一,oracle监听1067错误的处理修改oracle安装目录D:\DataBase\oracle\product\10.1.0\Db_1\NETWORK\ADMIN\下的 listener.ora和tnsnames.ora里的HOST值为localhost或者计算机名即可。F:\oracle\pr...阅读全文
posted @ 2014-11-18 14:04 残星 阅读(3351) | 评论 (0) 编辑
摘要: 1.分析表与索引(analyze 不会重建索引)analyze table tablename compute statistics等同于 analyze table tablename compute statistics for table for all indexes for all col...阅读全文
posted @ 2014-08-23 16:01 残星 阅读(120) | 评论 (0) 编辑
摘要: 比如在Northwind数据库中有一个查询为SELECT c.CustomerId,CompanyName FROM Customers cWHERE EXISTS(SELECT OrderID FROM Orders o WHERE o.CustomerID=c.CustomerID)这里面的EXISTS是如何运作呢?子查询返回的是OrderId字段,可是外面的查询要找的是CustomerID和CompanyName字段,这两个字段肯定不在OrderID里面啊,这是如何匹配的呢?EXISTS用于检查子查询是否至少会返回一行数据,该子查询实际上并不返回任何数据,而是返回值True或FalseE阅读全文
posted @ 2014-02-16 11:19 残星 阅读(349) | 评论 (0) 编辑
摘要: 一.如何用slq语句把一个表中的某几个字段的数据插入到另一个新表中,就要用下面这条slq语句: insert into 表名1(字段1,字段2) select 字段1,字段2 from 表名2这里有一点值得注意的是这2个字段要一一对应,并且按顺序。 二.如果另一个表是已经有数据的表,只希望更改其中的一列或几列的话,则用下面的sql语句: update 表名1,表名2 set 表名1.字段1 = 表名2.字段1 where 表名1.字段2 = 表名2.字段2因为第二个表是更新,所以只要指定与第一个表的关系,目的是数据的更新的时候能一一对应。阅读全文
posted @ 2014-02-11 22:58 残星 阅读(7738) | 评论 (0) 编辑
摘要: 本文主要介绍如何结合Sql脚本和PL/SQL Developer工具来实现创建表空间、创建数据库、备份数据库、数据导出等操作,然后实现Oracle对象创建、导入数据等操作,方便我们快速了解、创建所需要的部署Sql脚本和数据库操作。1、 准备数据库创建脚本[sql]createtablespacewhc_tbsdatafile'E:\oracle\oradata\whcdb\whc.dbf'size100M;--DROPTABLESPACEwhc_tbsINCLUDINGCONTENTSANDDATAFILESCASCADECONSTRAINTS;createuserwhcide阅读全文
posted @ 2013-08-28 22:41 残星 阅读(33182) | 评论 (1) 编辑
摘要: 取出sql表中第31到40条的记录(以自动增长ID为主键):Sql Server 下:方案1:select top 10 * from t where id not in (select top 30 id form t order by id) order by id;方案2:select top 10 * from t where id in (select top 40 id from t order by id) order by id desc;MySql 下:select * from t order by idlimit 30,10;Oracle 下:select * from 阅读全文
posted @ 2013-08-13 17:46 残星 阅读(189) | 评论 (0) 编辑
摘要: 1、使用dba权限登录2、建表阅读全文
posted @ 2012-12-03 11:07 残星 阅读(86) | 评论 (0) 编辑
摘要: declarejobno number;begin dbms_job.submit( jobno,--定时器ID,系统自动获得 'PRC_INSERT;',--what执行的过程名 sysdate,--next_date,定时器开始执行的时间,这样写表示立即执行 'sysdate + 15/1440'--interval,设置定时器执行的频率,这样写每隔15分钟执行一次);commit;end;这里第一个参数是任务编号,系统自动赋值。也可以采用isubmit来手动指定第二个参数是需要执行的任务过程,代码长的话,可以将它写到一个存储过程里,再放到里面调用,比如&#阅读全文
posted @ 2012-06-06 12:43 残星 阅读(23058) | 评论 (1) 编辑
摘要: 1.字符串拼接update tbl_main d set d.area_id='0'||d.area_id2.存储过程及游标create or replace procedure PRC_INSET_DEALasbegin declare cursor main_depart is select * from main_bak ; temp main_bak%rowtype; begin open main_depart; loop fetch main_depart into temp; exit when main_depart%notfound; insert into 阅读全文
posted @ 2012-06-02 17:26 残星 阅读(116) | 评论 (0) 编辑
摘要: 删除数据库某个表中的一列alter table tablename drop clumn clumnname;因为需求的变更,所以,有要对数据库中的一些字段进行修改.查了下网络上在资料,字段名称是无法修改的.唯一的办法,就是删了再添加.如何修改oracle数据库中表的结构(字段的名称、长、类型、是否为空)?改类型、长度、是否为空: alter table mytable modify (mycol varchar2(20) not null); 要修改类型,字段必须是空的; 要修改长度,如果字段是空的,完全可以改,如果字段不空,则只能增加长度,不能减小; 要修改是否为空,字段必须符合cons.阅读全文
posted @ 2012-05-10 10:11 残星 阅读(207) | 评论 (0) 编辑
摘要: 卸载步骤如下,只供参考: 1、在系统服务中停止所有oracle的服务。 2、打开控制面板,程序卸载,卸载所有有关oracle的程序 3、点击“开始,所有程序”找到oracle主程序下的Oracle Installation Products,点击“Universal Installer”。点击卸载,选择所有产品。卸载后查看“安装产品”,应该为空。 4、删除注册表相关选项:运行regedit, a、选择HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE b、选择HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet...阅读全文
posted @ 2012-05-03 13:02 残星 阅读(838) | 评论 (0) 编辑
摘要: 相信很多人都有过统计某些数据的经历,比如,要统计财务的情况,可能要按每年,每季度,每月,甚至每个星期来分别统计。那在oracle中应该怎么来写sql语句呢,这个时候Oracle的日期函数会给我们很多帮助。常用日期型函数 1。Sysdate 当前日期和时间SQL> Select sysdate from dual;SYSDATE----------21-6月 -052。Last_day 本月最后一天 SQL> Select last_day(sysdate) from dual;LAST_DAY(S----------30-6月 -053。Add_months(d,n) 当前日期d后阅读全文
posted @ 2012-04-17 12:54 残星 阅读(164) | 评论 (0) 编辑
摘要: from: 把Oracle表里的数据导成insert语句有些时候我们需要把oracle里的数据导入其他数据库里。生成insert into 表名 .... 是一种很简单直接的方法。 今年六月份从www.arikaplan.com/oracle.html看到一个可以生成insert into 表名 ....语句的存储过程genins_output。按中文习惯的时间格式YYYY-MM-DD HH24:MI:SS改了改,并新写了一个存储过程genins_file.sql。 它可以把小于16383条记录表里的数据导成(insert into 表名 ....)OS下文件。 调用它之前,DBA要看看数据库阅读全文
posted @ 2012-03-28 15:38 残星 阅读(944) | 评论 (0) 编辑
摘要: from: brucelau@CSDN大体的分为三种方法:一、可以通过toad、plsql develop等第三方工具进行导出DLL操作,用这种办法的好处在于操作简单方便,但需要安装,下面简单介绍一下用这两个工具获得DLL语句的操作。二、直接通过EXP/IMP工具Oracle提供的最原始最实用的导入导出工具,我们大体上可以分为三种办法实现导出DDL。a. 通过imp指定indexfile参数,但这种办法不爽在于有每行前会有REM语法大体如下:exp userid=... tables=emp rows=n file=emp.dmp imp userid=... file=emp.dmp ind阅读全文
posted @ 2012-03-28 15:37 残星 阅读(4683) | 评论 (0) 编辑
摘要: 在Oracle安装路径下找到tnsnames.ora如:D:\oracle\product\11.2.0\dbhome_1\NETWORK\ADMIN下打开该文件,在其最后加上服务器名=(DESCRIPTION = (ADDRESS_LIST = (ADDRESS =(PROTOCOL = TCP)(HOST = 服务器IP地址)(PORT = 端口号)) ) (CONNECT_DATA = (SERVICE_NAME = 服务器名) ) )阅读全文
posted @ 2012-03-28 11:53 残星 阅读(83) | 评论 (0) 编辑
摘要: //创建临时表空间 create temporary tablespace test_temptempfile 'E:\oracle\product\10.2.0\oradata\testserver\test_temp01.dbf'size 32mautoextend onnext 32mmaxsize 2048mextent management local; //创建数据表空间 create tablespace test_datalogging datafile 'E:\oracle\product\10.2.0\oradata\testserver\test_阅读全文
posted @ 2012-03-28 11:44 残星 阅读(1302) | 评论 (0) 编辑
摘要: package cn.ng.db;import java.sql.Connection;import java.sql.DriverManager;import java.sql.PreparedStatement;import java.sql.ResultSet;public class DbConnect { private final String url = "jdbc:oracle:thin:@服务器IP地址:1521:数据库名"; private final String className = "oracle.jdbc.driver.OracleD阅读全文
posted @ 2012-03-22 10:12 残星 阅读(239) | 评论 (0) 编辑
摘要: 单行函数格式:函数名【(参数1,参数2,参数3,...)】其中参数可以为用户定义的常量、变量、列名和表达式。单行函数只对表中的一行数据进行操作,并且对每一行数据只产生一个输出结果。单行函数可用在SELECT、WHERE和ORDER BY的子句中,而且单行函数可以嵌套。单行函数包含字符型。数字型、日期型、转换型和一般型函数。1.单行字符型函数(1)LOWER(列名|表达式):该函数用于把字符转换成小写。SELECT LOWER('SQL: Structural Query Language')FROM dual;dual是系统的一个虚表(伪表),原因:在查询语句中必须包含SELE阅读全文
posted @ 2012-03-17 13:41 残星 阅读(6225) | 评论 (0) 编辑
摘要: 1.脚本文件(1)生成SELECT empno,ename,job,salFROM empWHERE sal>=1500ORDER BY job,sal DESC;将SQL缓冲区中的语句存入D:\SQL\SAMPLE.sql文件中。SAVE D:\SQL\SAMPLESAVE命令把SQL缓冲区的内容存入指定的文件,该文件称为脚本文件。L(2)编辑GET D:\SQL\SAMPLE.sqlL此时,可以使用C、A、n或DEL等命令来编辑SQL缓冲区中的语句。/ed D:\SQL\SAMPLE(3)直接运行@D:\SQL\SAMPLE.sql"@"或START命令是把指定脚阅读全文
posted @ 2012-03-17 09:20 残星 阅读(114) | 评论 (0) 编辑
摘要: 1.日期显示问题依次执行以下命令:(1)alter session set NLS_DATE_LANGUAGE='AMERICAN;(2)col hiredate for a15(3)COL ENAME FOR A82.列的别名:在列名和别名别名之间放上AS或空格就可以了。当别名没有被双引号括起来时,其显示结果为大写。如果别名中包含了特殊字符,或想让别名原样显示,你就要使用双引号把别名括起来。SELECTempno AS "Employee Number",ename name,(sal+500)*12 "Annual Salary"FROM emp;3阅读全文
posted @ 2011-11-29 19:31 残星 阅读(18775) | 评论 (0) 编辑