随笔分类 -  oracle 数据库

oracle 数据库
摘要:--查询存储过程 --select * from user_source order by name; clear; select * from user_source where name = 'ADD_USER_INFORMATION'; --查询函数: --var sname = upper('get_sal'); --select * from user_source where name = 'GET_SAL'; select * from user_source where upper(name)= upper('get_sal'); --查询包: select * from user_source where upper(name)=upper('pack_test') and upper(type) = upper('package'); --删除存储过程: drop procedure add_user_information; -- --删除函数: drop function get_val; --删除包: drop pa 阅读全文
posted @ 2010-06-04 20:32 叮当小马 阅读(495) 评论(0) 推荐(0)
摘要:clear; --创建函数: create or replace function get_sal(name in varchar2) return number as v_sal emp.sal%type; begin select sal into v_sal from emp where upper(ename)= upper(name); return v_sal; Exception when no_data_found then raise_application_error(-20000,'该雇员不存在.'); end; / var sal number; exec :sal := get_sal('scott'); --print sal; sal --------- 3000 阅读全文
posted @ 2010-06-04 20:31 叮当小马 阅读(342) 评论(0) 推荐(0)
摘要:http://topic.csdn.net/t/20041126/22/3592748.html --参考资料: --包 CREATE OR REPLACE PACKAGE PAG_CUR_TEST --创建一个包 AS TYPE c_TYPE IS REF CURSOR; PROCEDURE prc_selecttestip(p_CUR In OUT c_TYPE); --存储过程带参数 END PAG_CUR_TEST; / --存储过程 CREATE OR REPLACE PACKAGE BODY PAG_CUR_TEST --创建一个包,创建包体 AS PROCEDURE prc_selecttestip(p_CUR In OUT c_TYPE) AS BEGIN OPEN p_CUR FOR SELECT * FROM ip_test; END 阅读全文
posted @ 2010-06-04 19:17 叮当小马 阅读(705) 评论(0) 推荐(0)
摘要:参考资料:http://reallyafei.javaeye.com/blog/391097 创建基本表 -- Create table create table USER_INFORMATION ( P_ID NUMBER, USER_LOGIN_NAME NVARCHAR2(30) ) 创建包: create or replace package pack_test is type cur_test is ref cursor; end pack_test; / --这个不能少呀,加上这个就可以在sql/plus中运行了,这个是结束符号 创建存储过程 create or replace procedure proc_cur(p_id in number,p_cur out pack_test.cur_test) is v_sql varchar2(400); begin if p_id = 0 then op 阅读全文
posted @ 2010-06-04 18:30 叮当小马 阅读(1197) 评论(0) 推荐(0)
摘要:--创建一个视图 create view v_ip_test as select * from ip_test order by id ; --使用数据字典来查询数据库中所有的 select * from user_views select * from user_views where view_name='v_ip_test' --此外应该为大写,否则会查询不出来。 select text from user_views where view_name='V_IP_TEST' --视图可以执行dml操作 select * from user_updatable_columns; --显示索引: --从数据字典中查询所有的索引 select * from ind; select index_name,uniqueness,status from ind where table_name='EMP'; --索引列的信息写入数据字典: select * from user_ind_columns; select column_name,column_ 阅读全文
posted @ 2010-06-03 14:56 叮当小马 阅读(881) 评论(0) 推荐(0)
摘要:物化视图是一种特殊的物理表,“物化”(Materialized)视图是相对普通视图而言的。普通视图是虚拟表,应用的局限性大,任何对视图的查询,Oracle都实际上转换为视图SQL语句的查询。这样对整体查询性能的提高,并没有实质上的好处。 ON DEMAND和ON COMMIT物化视图的区别在于其刷新方法的不同,ON DEMAND顾名思义,仅在该物化视图“需要”被刷新了,才进行刷新(REFRESH),即更新物化视图,以保证和基表数据的一致性;而ON COMMIT是说,一旦基表有了COMMIT,即事务提交,则立刻刷新,立刻更新物化视图,使得数据和基表一致。创建物化视图时未作指定,则Oracle按ON DEMAND模式来创建。 1) 物化视图在某种意义上说就是一个物理表(而且不仅仅是一个物理表),这通过其可以被user_tables查询出来,而得到佐证;   2) 物化视图也是一种段(segment),所以其有自己的物理存储属性;   3) 物化视图会占用数据库磁盘空间,这点从user_segment的查询结果,可以得到佐证。 --获取数据库rdbms版本信息   select 阅读全文
posted @ 2010-06-02 15:00 叮当小马 阅读(732) 评论(0) 推荐(0)
摘要:2010年5月14日星期五 Oracle数据的备份与还原 资料引用:http://www.knowsky.com/384957.html 数据的备份 1 将数据库orcl完全导出,用户名scott 密码tiger 导出到D:\daochu.dmp中 exp scott/tiger@orcl file=d:\daochu.dmp full=y 2 将数据库中system用户与sys用户的表导出 exp scott/tiger@orcl file=d:\daochu.dmp owner=(scott) 3 将数据库中的表inner_notify、notify_staff_relat导出 Exp scott/tiger@orcl file= d:\daochu.dmp tables=(inner_notify,notify_staff_relat) 数据的导入 1.imp scott/tiger@orcl file=d:\daochu.dmp full=y imp scott/tiger@orcl full=y file= d:\daochu. 阅读全文
posted @ 2010-05-14 19:35 叮当小马 阅读(445) 评论(0) 推荐(1)
摘要:2010年5月13日星期四 赋权限给oralce新建的用户 grant connect to XX; grant exp_full_database to XX; grant imp_full_database to XX; grant resource to XX; grant create procedure to XX; grant create trigger to XX; grant execute any procedure to XX; grant grant any privilege to XX; grant restricted session to XX; grant select any table to XX; grant unlimited tablespace to XX; grant create any view to XX; 阅读全文
posted @ 2010-05-14 19:34 叮当小马 阅读(680) 评论(0) 推荐(1)
摘要:用代码来实现oracle自动增加1功能 创建序列:-- Create sequence create sequence IP_Test_SEQUENCES minvalue 1 maxvalue 99999999999999999999999999 start with 1 increment by 1 cache 20 order; 创建触发器: create or replace trigger IP_Test_Trigger before insert on ip_test for each row declare -- local variables here next_id number; begin select IP_Test_Sequences.nextval into next_id from dual; :new.id:=next_id; --select IP_Test_Sequences.nextval into :new.id from dual; end IP_Test_Trigger; 阅读全文
posted @ 2010-05-14 19:32 叮当小马 阅读(591) 评论(0) 推荐(1)
摘要:oracle11g客户端-配置 首先配置:Net Configuration Assistant 一般在应用中配置监听程序配置和本地Net服务名配置: 再次配置:Net Manager 说是配置,打开它以后,就可以看到上面配置的net服务名,在这里可以进行测试。 阅读全文
posted @ 2010-05-13 20:29 叮当小马 阅读(18235) 评论(1) 推荐(0)
摘要:怎么使程序与服务器上的oracle11g进行通信呢。我们不能不再提SQLServer2000是如何与服务器上的数据库进行通信的呢。当用ASP.net进行程序开发时,我们在Webconfig中配置连接服务器上的SQLServer 连接字符串这样,就可以连接服务器上的数据库了。而在oracle11g中要安装oracle11g客户端软件,在客户端进行连接配置,这样才能与服务器通信。 从网上下载oracle11g客户端,安装后弹出下列选择框,当要在客户端开发连接oracle11g数据库的程序。应该选择下面的运行时,看它的提示:安装用于开发应用程序,网络服务等。 阅读全文
posted @ 2010-05-13 20:16 叮当小马 阅读(1490) 评论(0) 推荐(0)
摘要:Oracle11g中,设置主键为自增1形式-创建Trigger 阅读全文
posted @ 2010-05-13 20:10 叮当小马 阅读(425) 评论(0) 推荐(0)
摘要:Oracle11g中,设置主键为自增1形式-创建序列 阅读全文
posted @ 2010-05-12 12:55 叮当小马 阅读(2175) 评论(0) 推荐(0)
摘要:Oracle11g创建数据库 如何在是11g中创建数据库,这对于初学者是很重要的。当我们初学oracle11g时,安装后,机器中运行的是oracle11g默认安装的orcl数据库。这个数据库可以当作我们学习oracle数据库时的练习数据库。但在实际项目中,我们应该建立自己的数据库。 在oracle11g新建数据库,按如下步骤:配置和移植工具->Administration Assistant for windows.然后按照下面的提示一步一步做下去,可以使用默认的配置,也可以自定义配置。 当新建立完数据库,会在最后一地,加一个DataBase Control-xx,后面是你新建立的一个数据库名。 对orcle11g数据库深一步理解:我想这个应该是和Microsoft SQLServer 类似的吧。但也有所不同。一样的是,他们都以某种形式,以Windows的一种服务来存在;不同的是,SQLServer,各种数据库都以一个Windows服务来存在,而在oracle11g中每一个数据库在Windows 服务中都以数据库形式服务存在。 阅读全文
posted @ 2010-05-12 12:51 叮当小马 阅读(8268) 评论(3) 推荐(1)
摘要:sqlplus登陆短消息oracle数据库时提示“ORA-28000: 帐号被锁定”。 转贴:http://blog.csdn.net/shongyu/archive/2009/06/01/4233260.aspx 确定是由于oracle11g中默认在default概要文件中设置了“FAILED_LOGIN_ATTEMPTS=10次”,当输入密码错误次数达到设置值将导致此问题。 按照如下步骤进行操作: 1、查看用户的proifle是哪个,一般是default: sql>SELECT username,PROFILE FROM dba_users; 2、查看指定概要文件(如default)的密码有效期设置: sql>SELECT * FROM dba_profiles s WHERE s.profile='DEFAULT' AND resource_name='FAILED_LOGIN_ATTEMPTS'; 3、将尝试登录失败次数由默认的10次修改成“无限制”: sql>ALTER PROFILE DEFAULT LIMIT FAILED_LOGIN_ATTEMP 阅读全文
posted @ 2010-03-12 21:39 叮当小马 阅读(2534) 评论(0) 推荐(0)
摘要:大约有一个月的时间没有关注数据,再次看oralce 11g 时,发现数据库罢工了。Enterprise Manager 无法连接到数据库实例。这是怎么回事呢。在网上找了一些博客写的方法,但是我的就是不太好使,都已经研究了三天了。呵。实在是没有办法呀。 Oracle 11 g 安装默认的访问数据库的方法,是采用web方法。每一个数据库当作一个实例。每个实例访问时对应不同的端口。 而这种网页形式的方式,和以前的方式有较大的改进,也算是一种进步吧。但是也体现出来一些问题。就是不稳定,较有一些改动。Web访问就受到了影响。因此我觉得采用客户端的形式访问起来也挺方便的。现在我的数据库出现了无法连接到数据库实例,web访问是不行了,也只能采用另外的方法了。听朋友说pl/sql developer 挺好用的,他们现在就用的这个,而且用了一段时间了。说了这么多,也只能放弃web了。装上pl/sql developer 来体验下吧。别外oracle sql developer. 阅读全文
posted @ 2010-03-12 21:39 叮当小马 阅读(2236) 评论(0) 推荐(0)
摘要:Oracle 11g密码过期 在google里一搜一大把。但大多都是一个版本。在这里我也转贴一下。 转贴:http://blog.csdn.net/shongyu/archive/2009/06/01/4233260.aspx 按照如下步骤进行操作: 1、查看用户的proifle是哪个,一般是default: sql>SELECT username,PROFILE FROM dba_users; 2、查看指定概要文件(如default)的密码有效期设置: sql>SELECT * FROM dba_profiles s WHERE s.profile='DEFAULT' AND resource_name='PASSWORD_LIFE_TIME'; 3、将密码有效期由默认的180天修改成“无限制”: sql>ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED; 修改之后不需要重启动数据库,会立即生效。 SQL> conn sys as sysdba; SQL> select username,a 阅读全文
posted @ 2010-03-12 21:37 叮当小马 阅读(754) 评论(0) 推荐(0)