
Oracle/MySQL
皮特大熊
仰望星空,脚踏实地
展开
-
如何编写性能好的存储过程
在此谈一些在Oracle9I和PL/SQL Developer作为开发工具的环境下,对于如何编写性能好的存储过程,提一些自己的看法:1、代码的清晰性是第一步的,代码应该整齐、缩进一致、注释充分。PL/SQL DEV这个工具里面提供了代码格式化的工具:点击Edit菜单,点击“PL/SQL Beautifier”,工具会自动为我们排版布局。建议每次编写完成后都执行一下这个工具。2、转载 2011-12-20 09:00:32 · 951 阅读 · 0 评论 -
oracle建表主键自增序列
SQL> create table sms_activity( 2 id number, 3 activity_name varchar2(50), 4 begin_time varchar2(30), 5 end_time varchar2(30), 6 content varchar2(600) 7 );表已创建。SQL> commit;提交完成原创 2012-02-24 23:07:19 · 3574 阅读 · 0 评论 -
Oracle自增字段的应用
1.创建一个TestTable表, CREATE TABLE TestTable ( IDNUMBER NOT NULL, NAME VARCHAR2(40) ) ; 2.创建一个序列(Sequence),命名为SEQ CREATE SEQUENCE "DUNCAN"."SEQ" MINVALUE 1 MAXVALUE 99999999999转载 2012-02-21 09:07:28 · 1228 阅读 · 0 评论 -
Oracle含有空值的行数据排序问题
可以使用 nulls first 和 nulls last 把空值行排到前面和后面,例:1 select PatientName,BedNo 2 from T_PatientInHospital 3 where DepartmentCode='0608' 4 order by to_number(BedNo) nulls first1 select Pat转载 2012-04-24 22:22:06 · 1059 阅读 · 0 评论 -
存储过程示例(带游标)
CREATE OR REPLACE PROCEDURE P_ZG_StateTimeStatistics---------------------------------------------------------------------------------------------- ---- 创建 2012,04,22原创 2012-04-25 08:39:09 · 794 阅读 · 0 评论 -
视图
1.1 概念 视图-----是由SELECT查询语句(可以是单表或者多表查询)定义的一个"逻辑表",只有定义而无数据,是一个"虚表". 在创建视图时,只是将视图的定义信息保存在数据字典中, 而并不将实际的数据复制到任何地方, 即不需要在表空间中为视图分配存储空间. 视图是查看和操纵基表数据的一种方法, 可以像使用表一样使用视图. tips: 查询视图没有什么限制,转载 2012-05-04 16:48:20 · 777 阅读 · 0 评论 -
ORACLE导入导出
在SQLPLUS下面 执行:expsystem/system@orclfile=expfile log=expfile wner=orcl,提示:SP2-0734: 未知的命令开头 "exp system..." - 忽略了剩余的行,最后查了下资料发现应该是在cmd的dos命令提示符下执行,而不是在sqlplus里面, 或者在记事本上写下导出命令,后改成.BAT文件,就可以运行了...原创 2012-05-14 16:28:16 · 558 阅读 · 0 评论 -
Oracle冷热备份
一.冷备份冷备份发生在数据库已经正常关闭的情况下,当正常关闭时会提供给我们一个完整的数据库。冷备份时将关键性文件拷贝到另外的位置的一种做法。对于备份Oracle信息而言,冷备份时最快和最安全的方法。冷备份的优点是:1、 是非常快速的备份方法(只需拷文件)2、 容易归档(简单拷贝即可)3、 容易恢复到某个时间点上(只需将文件再拷贝回去)4、 能与归档方法相结合,做数据库“最佳状态转载 2012-06-18 14:03:06 · 879 阅读 · 0 评论 -
异常处理存储过程设计
有三种类型的异常错误: 1. 预定义 ( Predefined )错误 ORACLE预定义的异常情况大约有24个。对这种异常情况的处理,无需在程序中定义,由ORACLE自动将其引发。 2. 非预定义 ( Predefined )错误 即其他标准的ORACLE错误。对这种异常情况的处理,需要用户在程序中定义,然后由ORACLE自动将其引发。原创 2012-04-23 22:57:14 · 628 阅读 · 0 评论 -
oracle异常错误处理
即使是写得最好的PL/SQL程序也会遇到错误或未预料到的事件。一个优秀的程序都应该能够正确处理各种出错情况,并尽可能从错误中恢复。任何ORACLE错误(报告为ORA-xxxxx形式的Oracle错误号)、PL/SQL运行错误或用户定义条件(不一写是错误),都可以。当然了,PL/SQL编译错误不能通过PL/SQL异常处理来处理,因为这些错误发生在PL/SQL程序执行之前。ORACLE 提供异常情转载 2012-06-20 18:01:11 · 782 阅读 · 0 评论 -
OraclePL/SQL流程控制结构
1.For循环declarex number;beginfor x in 1..3 loopdbms_output.put_line('x='||x);end loop;end;========declarex number;beginfor x in reverse 1..3 loopdbms_output.put_line('x='||x);原创 2012-06-20 16:20:27 · 532 阅读 · 0 评论 -
Oracle11g密码过期
现象: ORA-28001:the password has expired 原因: 由于Oracle11g中默认在default概要文件中设置了“PASSWORD_LIFE_TIME=180天”所致 影响: 数据库密码过期后,业务进程一旦重启会提示连接失败,影响业务使用 处理步骤: 如下操作 */ 1.在CMD命令窗口中输入: sqlp原创 2012-11-25 15:04:43 · 994 阅读 · 0 评论 -
动态表的SQL插入方法
public OracleCommand cmd = null; public OracleConnection conn = null; private WriteData LA = new WriteData(); public bool insertValues(string TableName, string[] ColumnName,原创 2012-12-23 16:12:00 · 1194 阅读 · 0 评论 -
Oracle中遇到的问题--建表空间、用户授权、导入数据库
1.数据库导入导出是在DOS下,不是在SQLPlus下。1)建表空间CREATE TABLESPACE APISPECIFICATION DATAFILE 'D:\app\Administrator\oradata\orcl\APISPECIFICATION' SIZE 100M AUTOEXTEND ON NEXT 10M MAXSIZE UNLIMITED LOGGING原创 2012-07-01 11:32:56 · 766 阅读 · 0 评论 -
Oracle配置文件
概述在oracle安装目录$HOME/network/admin下,经常看到sqlnet.ora tnsnames.ora listener.ora这三个文件,除了tnsnames.ora,其他两个文件详细的用途很多人都不太了解。sqlnet.ora 用在oracle client端,用于配置连接服务端oracle的相关参数.tnsnames.ora 用在oracle client端,原创 2013-01-08 11:57:56 · 679 阅读 · 0 评论 -
空值处理
End_Time没有值 string strSQL = string.Format("Select End_Time From T_BJ_Inventory Where Inventory_No='{0}' And End_Time is not null", Inven_No); string n = ""; Orac原创 2011-12-24 13:47:44 · 1117 阅读 · 0 评论 -
Null
select * from tb where col is nullselect * from tb where col=''select * from tb where isnull(col,'')=''问:什么是NULL?答:在我们不知道具体有什么数据的时候,也即未知,可以用NULL, 我们称它为空,ORACLE中,含有空值的表列长度为零。ORACLE允许任何一种转载 2011-12-24 13:19:02 · 502 阅读 · 0 评论 -
调用Oracle存储过程返回(1个或多个)数据集
以前用企业库读SQL Server返回数据集没任何问题,可以返回1个也可以返回多个,读Oracle的时候返回一个数据集的时候也没问题,可是最近在用Oracle返回多个数据集的时候却出了问题,几经辗转,终于找到了解决方案,记下来!一定要记下来!千万不可忘记!以下代码在vss2005+oracle10g下测试通过。要使用企业库,肯定先引用喽:cs文件添加三个引用:Codeusing M原创 2011-12-20 09:07:16 · 5918 阅读 · 0 评论 -
oracle事务处理
public bool ExecDataBySqls(List strSqls, OracleConnection conn) { bool booIsSucceed = false; //声明提交数据是否成功的标记 OracleCommand cmd = new OracleComm原创 2011-12-19 22:43:05 · 823 阅读 · 1 评论 -
oracle存储过程实现增删改简单示例
插入:1 CREATE OR REPLACE Procedure p_insert_t_stu --存储过程名称2 (3 p_stuid in Number,4 p_stuname in Nvarchar2,5 p_stusex in Nvarchar2,6 p_stuadd in Nvarchar27 )8原创 2011-12-20 09:03:46 · 797 阅读 · 0 评论 -
Oracle存储过程编写经验和优化措施
一、前言: 在经过一段时间的存储过程开发之后,写下了一些开发时候的小结和经验与大家共享,希望对大家有益。 二、适合读者对象 数据库开发程序员,数据库的数据量很多,涉及到对SP(存储过程)的优化的项目开发人员,对数据库有浓厚兴趣的人。 三、介绍: 在数据库的开发过程中,经常会遇到复杂的业务逻辑和对数据库的操作,这个时候就会用SP来封装数据库操作。如果项目的SP较多,书转载 2011-12-20 08:58:53 · 533 阅读 · 0 评论 -
关于计算的SQL语句(Oracle)
1.记录两个时间之间间隔的小时数,精确到小数点后一位Select round( (To_date('2012-01-10-15:44', 'yyyy-mm-dd hh24-mi-ss')-To_date('2012-01-10-15:41' , 'yyyy-mm-dd hh24-mi-ss') ) * 24 ,1) from t_zg_operation Where Tool_No='A-原创 2012-01-10 21:30:24 · 1066 阅读 · 0 评论 -
Oracle11gR2卸载
1、首先停止“服务”中所有的ORCLE服务。进入服务的方法很多,如:在运行中输入services.msc,然后找到所有跟oracle有关的服务。2、然后“开始”-->“程序”-->“Oracle-OraDb110g_home1|Oracleinstallation product|Universalinstaller”隔一阵以后会出现一个画面,里面点击“卸载”,然后会弹出一个对话框,勾选所有的转载 2012-01-13 22:57:57 · 5001 阅读 · 0 评论 -
将用户加为EM的管理员
ORACLE导出时ORA-20446:错误解决 ORA-20446: The owner of the job is not registered ORA-06512: 在 "SYSMAN.MGMT_JOBS", line 168 ORA-06512: 在 "SYSMAN.MGMT_JOBS", line 86 ORA-06512: 在 line 1解决:转载 2012-02-11 14:43:20 · 902 阅读 · 0 评论 -
ORACLE对日期时间的处理
(1)在英文版本的ORACLE中默认日期格式为'DD-MON-YY',例如'01-JAN-98'在汉化的中文版本中ORACLE默认日期格式为'日-月-年',例如'21-8月-2003'或'21-8月-03'(2)转换字符串为日期使用ORACLE内部函数to_date()to_date()函数的参数是to_char()函数参数的反转。to_date(string_value ,原创 2012-02-16 17:41:44 · 1798 阅读 · 0 评论 -
ORACLE中序列的使用
数据库设计的三大范式第一条就是独立的表结构中必须有唯一主键来标识表中数据.在以往微软的SQL Server(duo版本)平台上.手动编码实现表中主键.并设定为自增列是极其简单.编码如下: typeid int not null primary key identity(1,1),在Oracle中如果要设定一个独立表结构的主键为自增.其中就涉及到了Oracle 10G中关于序列(Se转载 2012-02-16 16:52:40 · 2780 阅读 · 0 评论 -
Oracle插入日期问题
在网上看见不少oracle新学者对oracle的时间格式很烦,经常是设计了一个带时间字段的表之后,向表插入数据失败。回想起自己刚开始学习oracle时,也对这个时间格式摸不着头脑,虽然是小小的问题,高手们不屑于讨论,但对初学者来讲,这也是一个不大不小的坎,没找到门路的话,可能几天都过不去,其实就是一层窗户纸,没什么难的。这里做一个简单的小结,因水平有限,请高手补充指正。 1 oracle对时转载 2012-02-25 23:36:18 · 3358 阅读 · 0 评论 -
Oracle存储过程+C#代码 例子
实现添加 OracleConnection conn = new OracleConnection(ConnectionString); try { conn.Open(); OracleCommand cmd = new OracleCommand(原创 2012-02-26 19:36:36 · 952 阅读 · 0 评论 -
编写及调试PL/SQL
1.File—New—Program window—Blank中输入以下代码 F8运行 declare var_i number := 1; var_j number := 3; var_max number := 0; var_message nvarchar2(20) := '';begin if var_i > var_j原创 2012-03-07 10:23:17 · 615 阅读 · 0 评论 -
C#与Oracle插入或修改或查询时间的处理
string strInsertTime = System.DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"); string strInBoundTime = cmbInBound_Time.Value.ToString("yyyy-MM-dd");1.插入时间 sb1.Append("to_date('" + strInsertTime + "原创 2012-03-23 16:31:56 · 3580 阅读 · 0 评论 -
Oracle时间函数
1:取得当前日期是本月的第几周SQL> select to_char(sysdate,'YYYYMMDD W HH24:MI:SS') from dual;TO_CHAR(SYSDATE,'YY-------------------20030327 4 18:16:09SQL> select to_char(sysdate,'W') from dual;T-42转载 2013-04-18 08:47:03 · 1017 阅读 · 0 评论