为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

VB链接Oracle、Oracle基本操作、Oracle高级操作、VB调用存储过程、VB调用程序包等(自学学习笔记).doc

2018-08-29 18页 doc 208KB 22阅读

用户头像

is_686908

暂无简介

举报
VB链接Oracle、Oracle基本操作、Oracle高级操作、VB调用存储过程、VB调用程序包等(自学学习笔记).docVB链接Oracle、Oracle基本操作、Oracle高级操作、VB调用存储过程、VB调用程序包等(自学学习笔记).doc VB链接Oracle、Oracle基本操作、Oracle高级操作、VB调用存储过程、VB调用程序包 (自学学习笔记) 按学习过程笔记如下: 一、oracle本地文件配置相关 二、SQL/PLUS链接数据库 三、创建表空间 四、创建表 五、添加数据: 六、添加列 七、查看表结构 八、删除数据表 九、ADO控件链接Oracle数据库成功 十、创建存储过程 十一、Oracle 中时间区间...
VB链接Oracle、Oracle基本操作、Oracle高级操作、VB调用存储过程、VB调用程序包等(自学学习笔记).doc
VB链接Oracle、Oracle基本操作、Oracle高级操作、VB调用存储过程、VB调用程序包等(自学学习笔记).doc VB链接Oracle、Oracle基本操作、Oracle高级操作、VB调用存储过程、VB调用程序包 (自学学习笔记) 按学习过程笔记如下: 一、oracle本地文件配置相关 二、SQL/PLUS链接数据库 三、创建表空间 四、创建表 五、添加数据: 六、添加列 七、查看表结构 八、删除数据表 九、ADO控件链接Oracle数据库成功 十、创建存储过程 十一、Oracle 中时间区间查询 十二、改变字段属性-字符长度 十三、修改修改记录 十四、根据已有表结构创建新表 十五、删除列 十六、联合查询 十七、把子查询用作表达式 十八、获得前10条记录 十九、记录中重量最大的所有记录 二十、存储过程创建 二十一、调用带参数的存储过程,即调用上面的存储过程, 二十二、调用无参数的存储过程 二十三、oracle封包~头~体 二十四、VB 调用程序包的过程 一、本地文件配置相关 安装Oracle 9i 选择管理员模式,不选运行模式 本地tnsnames.ora文件配置,服务名 D:\oracle\ora92\network\ADMIN MYZSYY = (DESCRIPTION = (LOAD_BALANCE = yes) (FAILOVER = ON) (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 172.30.77.253)(PORT = 1521)) (ADDRESS = (PROTOCOL = TCP)(HOST = 172.30.77.253)(PORT = 1526)) ) (CONNECT_DATA = (SERVICE_NAME = ORC2) (FAILOVER_MODE = (TYPE = SELECT) (METHOD = BASIC) (RETRIES = 20) (DELAY = 15) ) ) ) 配置监听 # LISTENER.ORA Network Configuration File: D:\oracle\ora92\NETWORK\ADMIN\listener.ora # Generated by Oracle configuration tools. LISTENER = (DESCRIPTION_LIST = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 172.30.77.253)(PORT = 1521)) ) (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 172.30.77.253)(PORT = 1526)) ) ) 二、SQL/PLUS链接数据库 开始运行中输入sqlplus bzk22/zxcvbn@myzsyy 用户名:bzk22 密码:zxcvbn 本地服务名:myzsyy 本处不用服务器数据库名ORC2 三、创建表空间 create tablespace test datafile 'E:\Database\data\test_data.dbf' size 20M; 可以创建表,语句结束用分号 ; 四、创建表 Create table test_table (id number, name varchar2(20)); SQL> Create table FYHTXS ( 2 WWHTH VARCHAR2(40), 3 JYHTH VARCHAR2(40), 4 GFHTH VARCHAR2(40), 5 KHQC VARCHAR2(80), 6 CPMC VARCHAR2(50), 7 CHES NUMBER, 8 XTZL NUMBER, 9 SJZL NUMBER, 10 QZYD VARCHAR2(50), 11 YUNJ NUMBER, 12 GCLF VARCHAR2(80), 13 WAIWJ NUMBER, 14 CPLX VARCHAR2(20), 15 JLDATE DATE, 16 YSFS VARCHAR2(20), 17 BEIZHU VARCHAR2(150)); Table created 五、添加数据: SQL> insert into test_table values('10','张三','男'); 1 row inserted 六、添加列 SQL> alter table test_table add (sex varchar(50)); Table altered 七、查看表结构 SQL> desc test_table; Name Type Nullable Default Comments ---- ------------ -------- ------- -------- ID NUMBER Y NAME VARCHAR2(20) Y SEX VARCHAR2(50) Y 八、删除数据表 SQL> drop table test_table; Table droped 九、ADO控件链接Oracle数据库成功 链接串如下 Provider=MSDAORA.1;User ID=bzk22;Data Source=myzsyy;Persist Security Info=False 该链接后表显示 汉字为乱码 需要在工程中引用D:\oracle\ora92\bin\OraOLEDB.dll 连接串中将Provider=MSDAORA.1;改为Provider=OraOLEDB.Oracle.1;方可正确显示汉字 新链接字符串为 Provider=OraOLEDB.Oracle.1; Persist Security Info=False;User ID=bzk22;Password=zxcvbn;Data Source=myzsyy 十、创建存储过程 SQL> execute updateStatus; PL/SQL procedure successfully completed 十一、Oracle 中时间区间查询 select * from test_table where BIRTHDAY between to_date('1980-1-1','yyyy-mm-dd') and to_date('1990-1-1','yyyy-mm-dd'); Adodc1.RecordSource = "select * from test_table " & "where BIRTHDAY>=to_date('" & CStr(DTPicker1.Value) & "','yyyy-mm-dd')" & " and BIRTHDAY<=to_date('" & CStr(DTPicker2.Value) & "','yyyy-mm-dd')" 十二、改变字段属性-字符长度 SQL> alter table JSK_GLK_SBJL modify BEIZHU varchar2(100); Table altered 十三、修改修改记录 Update jsk_user set uname=’曹喜军’ where uname =’曹喜君’ 十四、根据已有表结构创建新表 create table test_table2 as select * from test_table; *可以替换为需要选择的字段 create table test_table2 as select * from test_table; 十五、删除列 SQL> alter table fyhtmx drop column WWHTJE; Table altered 十六、联合查询 SELECT * FROM bzfy.FY_STOWBILLCARLIST @FQORA.US.ORACLE.COM where w1='FYGL' union SELECT * FROM bzfy.FY_STOWBILLCARLIST @FQORA.US.ORACLE.COM where w1='FYGL' 十七、把子查询用作表达式 SELECT w1,(select ZHUANGT from test_table3 where id=w2) as a1,w3,w4,w5,w6,w7,w8,w9 FROM bzfy.FY_STOWBILLCAR @FQORA.US.ORACLE.COM 把子查询用作表达式 使用表别名ta1 ta2 作为相等条件 SELECT W1,W2,W3,W4,W5,W6,(select sum(w11) from bzfy.FY_STOWBILLCARLIST @FQORA.US.ORACLE.COM ta1 where ta1.w1=ta2.w1) as a1,w9 FROM bzfy.FY_STOWBILLCAR @FQORA.US.ORACLE.COM ta2 ORDER BY W3 DESC,W1 DESC 十八、获得前10条记录 select * from (SELECT * FROM bzfy.FY_STOWBILLCAR @FQORA.US.ORACLE.COM order by w1) where rownum<=10 select * from (SELECT w7 FROM bzfy.FY_STOWBILLCARLIST @FQORA.US.ORACLE.COM order by w1) where rownum<=5 SELECT W1,W2,W3,W4,W5,W6,(select sum(w11) from bzfy.FY_STOWBILLCARLIST @FQORA.US.ORACLE.COM ta1 where ta1.w1=ta2.w1) as a1, (select * from (SELECT w7 FROM bzfy.FY_STOWBILLCARLIST @FQORA.US.ORACLE.COM order by w1) where rownum<=1) as a2 FROM bzfy.FY_STOWBILLCAR @FQORA.US.ORACLE.COM ta2 ORDER BY W3 DESC,W1 DESC SELECT W1,W2,W3,W4,W5,W6, (select sum(w11) from bzfy.FY_STOWBILLCARLIST @FQORA.US.ORACLE.COM ta1 where ta1.w1=ta2.w1) as a1, (select w7 from bzfy.FY_STOWBILLCARLIST @FQORA.US.ORACLE.COM ta3 where w11 in(select max (w11) from bzfy.FY_STOWBILLCARLIST @FQORA.US.ORACLE.COM ta4)) as a2 FROM bzfy.FY_STOWBILLCAR @FQORA.US.ORACLE.COM ta2 ORDER BY W3 DESC,W1 DESC 十九、记录中重量最大的所有记录 (SELECT * FROM bzfy.FY_STOWBILLCARLIST @FQORA.US.ORACLE.COM d WHERE d.w11=(select max(w11) from bzfy.FY_STOWBILLCARLIST @FQORA.US.ORACLE.COM t where t.w1=d.w1 ) AND d.rowid=(select max(rowid)from bzfy.FY_STOWBILLCARLIST @FQORA.US.ORACLE.COM t where t.w1=d.w1 )) order by w15 desc ,w1 desc 表2重量最大的记录所对应的w7作为表1的w3 SELECT x.w1,x.w3,y.w7 FROM bzfy.FY_STOWBILLCAR @FQORA.US.ORACLE.COM x, (SELECT * FROM bzfy.FY_STOWBILLCARLIST @FQORA.US.ORACLE.COM d WHERE d.w11=(select max(w11) from bzfy.FY_STOWBILLCARLIST @FQORA.US.ORACLE.COM t where t.w1=d.w1 ) AND d.rowid=(select max(rowid)from bzfy.FY_STOWBILLCARLIST @FQORA.US.ORACLE.COM t where t.w1=d.w1 ) ) y where x.w1=y.w1(+) order by x.w3 desc, x.w1 desc 二十、存储过程创建 在Procedure下直接创建即可 create or replace procedure addPro( a_Pid Product.Pid%type, a_Pname Product.Pname%type, a_TypeId Product.TypeId%type, a_TypeName Product.TypeName%type, a_UpperId Product.UpperId%type, a_Pstyle Product.Pstyle%type, a_Punit Product.Punit%type, a_Pprice Product.Pprice%type, a_Plow Product.Plow%type, a_Phigh Product.Phigh%type, a_Cid Product.Cid%type, a_Cname Product.Cname%type) as begin insert into Product (Pid,Pname, TypeId,TypeName, UpperId,Pstyle,Punit,Pprice, Snum,Plow,Phigh,Cid,Cname) values(a_Pid,a_Pname,a_TypeId,a_TypeName,a_UpperId,a_Pstyle,a_Punit,a _Pprice,0,a_Plow,a_Phigh,a_Cid,a_Cname); commit; end; 上面存储过程中有个“0”,容易影响编程,共12各参数,实际表中字段为13个 二十一、调用带参数的存储过程(即调用上面的存储过程) Dim conn As New ADODB.Connection Dim rs, rs1 As New ADODB.Recordset Dim str As String Private Sub Form_Load() Set conn = New ADODB.Connection str="Provider=MSDAORA.1;Password=a123;UserID=kucun_admin;DataSource=kuc un" conn.Open str Text1.Enabled = False Text2.Enabled = False Text3.Enabled = False Text4.Enabled = False Text5.Enabled = False Text6.Enabled = False Text7.Enabled = False Text8.Enabled = False Text9.Enabled = False Text10.Enabled = False Text11.Enabled = False Text12.Enabled = False Combo1.Enabled = False End Sub ---------------------------------------------------------------- Private Sub cmd_save_Click() If Text1.Text = "" Or Text2.Text = "" Or Text6.Text = "" Or Text4.Text = "" Or Text7.Text = "" Or Text8.Text = "" Or Text9.Text = "" Or Text10.Text = "" Or Text11.Text = "" Or Text12.Text = "" Or Combo1 = "" Then MsgBox "请输入完整信息~" Else s1 = Text1.Text s2 = Text2.Text s3 = Text3.Text s4 = Text4.Text s5 = Text5.Text s6 = Text6.Text s7 = Text7.Text s8 = Text8.Text s9 = Text9.Text s10 = Text10.Text s11 = Text11.Text s12 = Text12.Text s13 = Combo1.Text str = "select * from Product where Pid='" + s1 + "'" Set rs1 = conn.Execute(str) If rs1.EOF Or rs1.BOF Then str2 = "kucun_admin.addPro('" + s1 + "','" + s2 + "','" + s11 + "','" + s12 + "','" + s13 + "','" + s3 + "','" + s4 + "','" + s6 + "','" + s7 + "','" + s8 + "','" + s9 + "','" + s10 + "')" Set rs2 = conn.Execute(str2) ‘ {kucun_admin为用户名} MsgBox "添加成功~" Adodc1.Refresh Unload Product Else MsgBox "已有此记录,请重新输入~" End If End If End Sub 二十二、调用无参数的存储过程 Dim conn As ADODB.Connection Dim rs, rs1, rs2 As ADODB.Recordset Dim str As String Set conn = New ADODB.Connection str = "Provider=OraOLEDB.Oracle.1;Persist Security Info=False;User ID=bzk22;Password=zxcvbn;Data Source=myzsyy" conn.Open str str1 = "bzk22.updateStatus" Set rs = conn.Execute(str1) 二十三、oracle封包,头,体 头(Procedure) create or replace package PACK_Wink is procedure addPro_TEST(a_Pid Product.Pid%type, a_Pname Product.Pname%type, a_TypeId Product.TypeId%type, a_TypeName Product.TypeName%type, a_UpperId Product.UpperId%type, a_Pstyle Product.Pstyle%type, a_Punit Product.Punit%type, a_Pprice Product.Pprice%type, a_Plow Product.Plow%type, a_Phigh Product.Phigh%type, a_Cid Product.Cid%type, a_Cname Product.Cname%type); end PACK_Wink; 体(Package bodies) create or replace package body PACK_Wink is --{*******************************************************} --{ } --{ 项目名称:包测试 } --{ } --{ 版权所有 (c) 2011,2012 中实运业 } --{ } --{*******************************************************} --: 项目中实运业成本核算管理信息系统 --模块:添加 --描述: --版本:1.0 --日期:2012-6-4 --作者:吴长平 --更新: --*******************************************************} --------------------------------------------------------------------- ------------- ------------------------------------- --测试 2010-9-15 ------------------------------------- procedure addPro_TEST( a_Pid Product.Pid%type, a_Pname Product.Pname%type, a_TypeId Product.TypeId%type, a_TypeName Product.TypeName%type, a_UpperId Product.UpperId%type, a_Pstyle Product.Pstyle%type, a_Punit Product.Punit%type, a_Pprice Product.Pprice%type, a_Plow Product.Plow%type, a_Phigh Product.Phigh%type, a_Cid Product.Cid%type, a_Cname Product.Cname%type) as begin insert into Product (Pid,Pname, TypeId,TypeName, UpperId,Pstyle,Punit,Pprice, Snum,Plow,Phigh,Cid,Cname) values(a_Pid,a_Pname,a_TypeId,a_TypeName,a_UpperId,a_Pstyle,a_Punit,a _Pprice,0,a_Plow,a_Phigh,a_Cid,a_Cname); commit; end; end PACK_Wink; 二十四、VB 调用程序包的过程 str2 = "bzk22.PACK_Wink.addPro_TEST('" + s1 + "','" + s1 + "','" + s1 + "','" + s1 + "','" + s1 + "','" + s1 + "','" + s1 + "','" + s1 + "','" + s1 + "','" + s1 + "','" + s1 + "','" + s1 + "')" Set rs2 = conn.Execute(str2)
/
本文档为【VB链接Oracle、Oracle基本操作、Oracle高级操作、VB调用存储过程、VB调用程序包等&#40;自学学习笔记&#41;&#46;doc】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索