
Oracle
衣舞晨风
不预测,只应对
展开
-
SQL99 和 SQL92 的区别
我个人建议多表连接使用 SQL99 标准,因为层次性更强,可读性更强。原创 2023-06-27 07:13:18 · 306 阅读 · 0 评论 -
Oracle 查询表中各列名称、表中列数
select count( column_name )from user_tab_columnswhere table_name = '表名'; --表名为大写小注:sql语句在使用的时候,只需要将表名换成要统计列数的表名即可,其余部分不需要修改。原创 2014-03-06 14:35:25 · 3289 阅读 · 0 评论 -
PL SQL Developer 客户端 连接服务器
安装完Oracle,PLSQL之后,在服务器中打开监听。 计算机右键—管理—服务和应用程序—服务—打开以Oracle开头的服务,特别是监听,这个最重要,具体如图所示。 (1)配置监听的位置 开始—所有程序—Oracle_OraDb11g_home1—配置和移植工具—Net Manager,具体如下图所以,在这个页面中不但可以配置监听也可以进原创 2014-09-02 13:50:57 · 1906 阅读 · 0 评论 -
Oracle性能优化学习笔记之WHERE子句中的连接顺序
ORACLE采用自下而上的顺序解析WHERE子句,根据这个原理,表之间的连接必须写在其他WHERE条件之前, 那些可以过滤掉最大数量记录的条件必须写在WHERE子句的末尾. 例如: (低效,执行时间156.3秒)SELECT … FROM EMP EWHERE SAL > 50000AND JOB = ‘MANAGER’AND 25原创 2014-09-03 09:30:09 · 2532 阅读 · 3 评论 -
获取数据库服务器日期、时间
一、获取数据库服务器日期(格式:yyyymmdd) sql server版本 string vsSql = "select convert(varchar(10),getdate(),112) as snTime"; oracle 版本 string vsSql = "select to_char(sysdate,'yyyymmdd') as snDate from dual"; 然后通过执行原创 2014-01-08 09:47:30 · 2252 阅读 · 0 评论 -
Oracle 中 dual 详解
基本上oracle引入dual为的就是符合语法1. 我们先从名称来说,dual不是缩写词,本身就是完整的单词。dual名词意思是对数,做形容词时是指二重的,二元的。2. Oracle中的dual表是一个单行单列的虚拟表。3. Dual表主要用来选择系统变量或求一个表达式的值。4. 更具体的说,我们见过这样一个简单的例子: SELECT sysdate FROM daul原创 2014-01-08 09:37:18 · 1710 阅读 · 0 评论 -
Oracle中SQL的性能优化
【IT168 技术文档】1、用EXISTS替代IN,NOT EXISTS替代NOT IN:<span lang="EN-US" style="font-size:10.5pt;color:#333333;" > 在子查询中,NOT 在许多基于基础表的查询中,为了满足一个条件,往往需要对另一个表进行联接.在这种情况下, 使用EXISTS(或NOTEXISTS)通常将提高查询的效率.<转载 2014-01-08 09:38:52 · 1069 阅读 · 0 评论 -
Oracle或者Pl/Sql中001与1一样吗?
今天写了一个插入语句,往表C中插入数据。insert into 表名(列名) values () where A.列aa=B.列bb; 但半天没反应,select aa from A;select bb from B,发现存在相等的值 A中的aa是1,2,3;B中是001,002,003解决:把1改为001,2改为002,3改为003后问题解决,从此可以看出001与1在Oracle原创 2014-01-08 09:38:36 · 2074 阅读 · 0 评论 -
Oracle 常用函数
1、Oracle Least()函数2、Oracle Greatest()函数3、EXTRACT (datetime)4、SUBSTR函数5、原创 2014-03-06 09:02:26 · 1360 阅读 · 0 评论 -
Oracle 11g解锁scott
用PLSQL Developer登录scott/tiger 账户时给出提示: ERROR: ORA-28000: the account is locked 解决方法: (1)以DBA的身份登录system账户 (2)为scott解锁,输入: alter user scott account unlock;原创 2014-01-08 09:39:30 · 1233 阅读 · 0 评论 -
Oracle ORA-12899
当你往数据库中插入数据,提示你所插入的数据大于建表时该列所允许的最大属性时,可以修改该列的属性,以使其满足现在的要求 。 语法:alter table 表名 MODIFY 要修改的列名 相应的目标属性EG: alter table Test MODIFY BH varchar(50)原创 2014-01-08 09:41:20 · 1971 阅读 · 0 评论 -
Oracle Greatest()函数
GREATESTThe GREATEST function returns the largest expression in a list of expressions. All expressions after the first are implicitly converted to the data type of the first expression before th转载 2014-03-05 14:27:32 · 5566 阅读 · 0 评论 -
SQL AUTO INCREMENT 字段
1、用于 SQL Server 的语法下列 SQL 语句把 "Persons" 表中的 "P_Id" 列定义为 auto-increment 主键:CREATE TABLE Persons(P_Id int PRIMARY KEY IDENTITY,LastName varchar(255) NOT NULL,FirstName varchar(255),Address varchar(原创 2014-01-08 09:37:29 · 1360 阅读 · 0 评论 -
PLSQL中汉字显示乱码问题
首先执行语句 select * from V$NLS_PARAMETERS 查看第一行中PARAMETER项中为NLS_LANGUAGE 对应的VALUE项中是否为SIMPLIFIED CHINESE。如果不是,需要设置环境变量。 双击我的电脑,在空白处右键,属性,“高级”选项卡,点击环境变量,在系统变量处点击“新建”,设置变量名:NLS_LANG , 变量值:SIMPLIFIED C原创 2014-01-08 09:37:50 · 1785 阅读 · 0 评论 -
Oracle 如何查看建表时间?
SELECT CREATED FROM USER_OBJECTS WHERE OBJECT_NAME='表名';注意 你的table名字一定要大写 在数据字典里是分大小写的。原创 2014-01-08 09:38:43 · 2352 阅读 · 0 评论 -
Oracle跨库链接操作
首先通过PL sql在源数据库A中建立到目标数据库B的连接,语句如下:drop database link orclAB;create shared database link orclAB connect to TargetUserName identified by "TargetUser密码" AUTHENTICATED BY TargetUserName IDENTIFIED BY原创 2014-01-08 09:47:57 · 2004 阅读 · 0 评论 -
Oracle与Sql Server差异点详解
1、create函数或存储过程异同点 Oracle 创建函数或存储过程一般是 create or replace …… SQL SERVER 则是在创建之前加一条语句,先判断是否已经存在,如果存在删除已有的函数或存储过程。函数语句:if exists (select * from dbo.sysobjects where id = object_id(N'[db转载 2014-01-22 08:25:25 · 1421 阅读 · 0 评论 -
SqlPlus 中,如何查看某存储过程的内容?
select text from all_source where name = '存储过程名';原创 2014-01-08 09:38:32 · 9233 阅读 · 0 评论 -
Oracle 连接查询(mysql、 sql server一样)
背景:emp表中有14条记录:dept表中4条记录:salgrade表中有5条记录:一、交叉连接(CROSS JOIN) 交叉连接(CROSS JOIN):有两种,显式的和隐式的,不带ON子句,返回的是两表的乘积,也叫笛卡尔积。 例如:下面的语句1和语句2的结果是相同的(均为56条记录)。 语句1:隐式的交叉连原创 2014-02-08 16:34:15 · 1662 阅读 · 0 评论 -
oracle 11g客户端如何完全卸载
1、停用oracle服务:进入计算机管理,在服务中,找到oracle开头的所有服务,右击选择停止2、在开始菜单中,找到Universal Installer,运行Oracle Universal Installer,单击卸载产品3、在产品清单窗口中,单击全部展开,除了OraDb11g_home1外,勾选其他项目,单击删除卸载完后,再删除:OraDb11g_home13、按W原创 2015-01-12 20:35:25 · 12567 阅读 · 0 评论 -
Oracle性能优化学习笔记之共享Sql语句
为了不重复解析相同的SQL语句,在第一次解析之后,Oracle将SQL语句存放在内存中。这块位于系统全局区域SGA(systemglobal area)的共享池(shared buffer pool中的内存可以被所有的数据库用户共享。因此,当你执行一个SQL语句(有时被称为一个游标)时,如果它和之前执行过的语句完全相同,Oracle就能很快获得已经被解析的语句以及最好的执行方案。Oracle的这个原创 2014-09-02 17:07:00 · 1637 阅读 · 0 评论 -
Oracle性能优化学习笔记之选择最有效率的表名顺序
选择最有效率的表名顺序(只在基于规则的优化器中有效) ORACLE的解析器按照从右到左的顺序处理FROM子句中的表名,因此FROM子句中写在最后的表(基础表 driving table)将被最先处理. 在FROM子句中包含多个表的情况下,你必须选择记录条数最少的表作为基础表.当ORACLE处理多个表时, 会运用排序及合并的方式连接它们.首先,扫描第一个表(FROM子句中最后的那个原创 2014-09-03 09:29:47 · 2026 阅读 · 0 评论 -
64位Oracle用pl/sql导入表
问题背景简介: 在服务器上搭建了64环境,用于测试,由于plsql对于64位oracle支持不好,所以其导入、导出表或者数据图标为灰色,不可用。 那我要该服务器上导入相应的数据应该怎么办呢?解决办法:在本机(32位环境)plsql登录相应的帐号,将.pde文件导入(导入、导出按钮在工具栏下面有),即可。导入pde文件是在pl/sql developer选项卡界面进行导入。 尽量原创 2014-01-08 09:37:54 · 1576 阅读 · 0 评论 -
Oracle EXTRACT (datetime)
EXTRACT (datetime)Syntaxextract_datetime::=Description of the illustration extract_datetime.gifPurposeEXTRACT extracts and returns the value of a specified datetime field from转载 2014-03-06 08:58:03 · 1934 阅读 · 0 评论 -
SQL Server vs Oracle 简单语法比较
1、SQL SERVER变量必须以@开头。 2、SQL SERVER语句后不需要写分号结束符。 3、oracle变量类型number可以修改为sql server的decimal 4、oracle变量类型varchar2可以修改为sql server的varchar 5、SQL SERVER定义变量及传递参数,最好加上原创 2014-01-21 11:13:03 · 1629 阅读 · 0 评论 -
Oracle case when用法
CASE表达式可以在SQL中实现if-then-else型的逻辑,而不必使用PL/SQL。注意点: 1、以CASE开头,以END结尾 2、分支中WHEN 后跟条件,THEN为显示结果 3、ELSE 为除此之外的默认情况,类似于高级语言程序中switch case的default,可以不加 4、END 后跟别名 CASE有两种表达式: 1. 简单CASE表达式原创 2014-01-16 14:44:58 · 13301 阅读 · 0 评论 -
Oracle中添加虚拟列(emp是oracle自带表)
select 0 as unchecked,empno,ename,job,mgr,hiredate,sal,comm,deptno from emp原创 2014-01-08 09:41:17 · 2902 阅读 · 0 评论 -
Oracle 数据库(表)的逻辑备份与恢复
导入最好用:导入 导出最好用:导出 逻辑备份是指使用工具export将数据对象的结构和数据导出到文件的过程,逻辑恢复是指当数据库对象被误操作而损坏后使用工具import利用备份的文件把数据对象导入到数据库的过程。 物理备份即可在数据库open的状态下进行也可在关闭数据库后进行,但是逻辑备份和恢复只能在open的状态下进行。 一、导出 导出具体的分为:导出表,导出方案,导出数据库三原创 2014-01-08 09:40:03 · 1181 阅读 · 0 评论 -
Oracle Least()函数
LEASTThe LEAST function returns the smallest expression in a list of expressions. All expressions after the first are implicitly converted to the data type of the first expression before the com转载 2014-03-05 14:28:57 · 7529 阅读 · 0 评论 -
oracle 存储过程
创建和删除存储过程 创建存储过程,需要有CREATE PROCEDURE或CREATE ANY PROCEDURE的系统权限。该权限可由系统管理员授予。创建一个存储过程的基本语句如下:CREATE [OR REPLACE] PROCEDURE 存储过程名[(参数[IN|OUT|IN OUT] 数据类型...)] {AS|IS} [说明部分] BEGIN 可执行部分原创 2014-01-21 13:59:42 · 1726 阅读 · 0 评论 -
Oracle中会话与事务有什么区别?
一个会话可以启动多个事务,会话是session,指一次连接。 事务是指一个操作单元,要么成功,要么失败,没有中间状态。 会话中可以完成多个事务。例如: 会话好比,在应用程序中连接数据库要执行连接,然后会关闭,这算一次会话。 事务呢,就好比在打开会话后要执行程序中的某一个或多个对数据库进行的操作。 事物的最原创 2014-04-16 08:35:24 · 3470 阅读 · 0 评论 -
Oracle 常用命令小结
1、当前数据库中查看建表语句select dbms_metadata.get_ddl('TABLE','表名') from dual;2、原创 2014-06-27 11:05:31 · 1543 阅读 · 0 评论 -
在64位机器上使用plSQL连接Oracle的问题(SQL*Net not properly installed)
问题背景: 我在64位机器上了64位的oracle客户端。 然后装上PL/SQL Developer,但是连接oracle老报这个错: Initialization error SQL*Net not properly installed OracleHomeKey:原创 2014-04-11 08:27:16 · 2940 阅读 · 0 评论 -
Windows下手动完全卸载Oracle
使用Oracle自带的Universal Installer卸载存在问题: 不干净,不完全,还有一些注册表残留,会影响到后来的安装。 所以,推荐使用手工卸载Oracle。1.【win+R】->【services.msc】,关闭oracle所有的服务。 使用OUI(Oracle Universal Installer)卸载Oracle软件。 “开始”->“程序”->“Oracle-Ora原创 2014-08-25 08:23:14 · 1974 阅读 · 0 评论 -
跟踪oracle中sql语句执行过程及相关知识拓展
select * from v$sqlarea; 可以跟踪sql语句的执行过程,如果想跟踪某个时间点前后的语句,可以通过first_load_time时间进行控制。select * from v$sqlarea where first_load_time>'2010-11-27/09:30:00'; 这个方法查询结果每条记录显示一条查询语句,且只能查询sql_t原创 2014-09-02 09:39:50 · 3047 阅读 · 0 评论 -
怎样用SQL语句查询一个数据库中的所有表?
SQL : select * from information_schema.tablesORACLE: select table_name from user_tables ACCESS: select name from MSysObjects where type=1 and flags=0原创 2014-01-08 09:37:43 · 2525 阅读 · 0 评论 -
Oracle的SQL*Plus工具中如何清屏
方法一:同时按SHIFT和DELETE键然后点OK就可以了 。方法二:如果在window窗口下sqlplus 中清屏命令:host cls 或是clear screen 或只是4位 clea scre。方法三:如果是在dos的窗口下进入sql/plus就要用clear SCR。原创 2014-01-08 09:39:37 · 2319 阅读 · 0 评论 -
Oracle与SQL Server数据类型对应关系
<table class="MsoNormalTable" border="1" cellpadding="0" width="595" style="width:446.25pt; mso-cellspacing:1.5pt;mso-padding-alt:1.5pt 1.5pt 1.5pt 1.5pt;" > <span lang="EN-US" sty原创 2014-01-08 09:37:02 · 1457 阅读 · 0 评论 -
oracle 判断列是否在数据库中存在
select count('列名') from cols where table_name=upper('表名') and column_name=upper('列名')其存在与否的结果与oracle 判断某个表是否存在一样,都是返回1或者0原创 2014-01-08 09:47:41 · 1518 阅读 · 0 评论 -
oracle与sql server大批量存储过程可以替换部分
1、将oracle 建立存储过程的代码 CREATE OR REPLACE Procedure 存储过程名中的 OR REPLACE 替换为空2、将oracle的变量(和字段名不重名的)直接替换成@变量名。 例如: user_id 替换为 @user_id3、将IS 替换为 AS。 (注意:需要手工将begin 提前到AS下面)。4、下面4条为游标部分原创 2014-01-21 19:49:31 · 1564 阅读 · 0 评论