![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据库编程
小米的修行之路
是日已过,命亦随减;如少水鱼,斯有何乐?当勤精进,如救头燃!但念无常,慎勿放逸。
展开
-
Oracle触发器 当插入或者更新数据时,将数据同步更新到另外一个用户的一个表中
1、当前oracle数据库有两个表,scott用户是系统自带的用户,里面有一个dept表,作为测试使用。同时新建一个test用户,里面也新建一个表dept。当向scott用户的dept表进行插入或者更新时,将数据也同时更新到test用户的dept表中。2、触发器创建步骤:(1)、使用PL/SQL DEVELPTOR 登录sys或者system用户,将test用户下dept表的插入/更新/选择权限赋给scott用户:grant insert on test.dept to scott;gran原创 2021-04-26 17:46:46 · 6872 阅读 · 0 评论 -
oracle中创建DBLINK方法
以下使用oracle数据库自带的scott用户来进行说明和测试。1、有两个数据库orcl1和orcl,我们现实现通过DBLINK,在orcl1数据库scott用户中连接orcl数据库的scott用户。2、第一步我们需要登陆orcl1数据库的scott用户下,查看其是否具有创建DBLINK的权限: select * from user_sys_privs where privilege like upper('%DATABASE LINK%'); 图上图所示,查询结果显示:没有权限创建D原创 2021-01-21 19:20:07 · 526 阅读 · 0 评论 -
MFC中使用Sqllite数据库
1、今天已经10.24号了,最近一个半月一直忙其它的工作了,正好今天是程序员节,记录一下MFC中Sqllite数据库的使用,之前在QT中已经使用过Sqllite数据库了。封装类:#pragma once#include "sqlite3.h"class CSqlliteHandler{public: CSqlliteHandler(void); ~CSqlliteHandl...原创 2019-10-24 17:56:30 · 650 阅读 · 4 评论 -
oracle中的sql%rowcount,sql%found、sql%notfound、sql%rowcount和sql%isopen
sql是系统自动创建隐式游标;隐式游标自动声明、打开和关闭,其名为 SQL;通过检查隐式游标的属性可以获得最近执行的DML 语句的信息;隐式游标的属性有:SQL%FOUND – SQL 语句影响了一行或多行时为 TRUE;SQL%NOTFOUND – SQL 语句没有影响任何行时为TRUE;SQL%ROWCOUNT – SQL 语句影响的行数;SQL%ISOPEN - 游标是否打开,始终为FAL原创 2017-10-23 17:19:59 · 2567 阅读 · 0 评论 -
Oracle创建表时Storage参数具体含义
本文通过图表和实例的阐述在Oracle数据库创建新表时Storage的参数具体含义。 可用于:表空间、回滚段、表、索引、分区、快照、快照日志参数名称缺省值最小值最大值说明INITIAL5(数据块)2(数据块)操作系统限定分配给Segment的第一个Extent的大小,以字节为单位,这个参数不能在alter语句中改变,如果指定转载 2017-11-01 10:43:09 · 9047 阅读 · 0 评论 -
Oracle数据库实现一个字段自增
对于SQL SERVER数据库实现字段自增比较简单,可以之间使用函数:identity(),例如我们在建表时可以这样实现:create table tbRentInfo( sID int identity (1,1) primary key not null, sDVDID int not null, sName varchar(20) not null, sDate datetime n...原创 2018-04-11 10:22:04 · 2490 阅读 · 0 评论 -
使用Occi连接Oracle数据库的配置
1、首先注意occi库是64位还是32位,一定要和IDE的环境匹配好,同时和vs的版本也要匹配!2、Oracle C++ Call Interface - Downloads的下载地址:Oracle C++ Call Interface下载地址3、我是直接安装了 64位 Oracle 11g,安装完后就有配置需要的头文件和库文件,我的目录如下:头文件目录:H:\app\admin\product\...原创 2018-04-26 16:02:10 · 743 阅读 · 0 评论 -
使用Occi连接Oracle数据库
1、首先应该创建环境变量:Environment类是OCCI程序的基础类,所有的OCCI对象的建立都是依计Environment对象来创建的,所以Environment对象的建立必须放在第一位,而且也必须是最后一个被终止的。例如:首先创建一个Environment对象env,然后通过env创建一个Connection对象conn,conn是连接了数据库的对象;终止时,却反过来先终止对象conn,再...原创 2018-04-26 16:09:10 · 699 阅读 · 0 评论 -
occi连接数据库:rs->getString(3)报错
1、报错代码:while (rs->next()) { int nID = rs->getInt(1); int nDVDID = rs->getInt(2); string strName = rs->getString(3); }2、报错信息:OcciToOracle.exe 中的 0x5c99336f (msvcp100d.dll) 处有未...原创 2018-04-26 17:28:29 · 1907 阅读 · 8 评论 -
Oracle触发器中的NEW和Old关键字说明
触发器中经常会用到NEW和OLD两个关键字,这是系统默认的吗?只要带上NEW或者OLD,系统就知道是新数据还是老数据?CREATE OR REPLACE TRIGGER trg_del_emp_info BEFORE DELETE ON emp FOR EACH ROW DECLARE -- local variables here BEGIN原创 2017-10-13 16:57:52 · 16521 阅读 · 0 评论 -
Oracle中的函数
函数与存储过程的区别:两者都是存储在数据库中的程序块,但是存储过程没有返回值,函数有返回值,所以在函数的主题部分必须使用return语句返回一个函数值,返回值类型与声明时的返回值类型要相同。1、定义一个函数:函数名:getavgsal;参数:num_deptno,类型是:number;返回值类型是:number。create or replace function getavgsa原创 2017-10-11 17:07:59 · 435 阅读 · 0 评论 -
ORA-00979 不是GROUP BY表达式
错误提示:上面错误的原因是:Select选择列表中的字段都必须出现在group by 后面。job在select选择列表中,却没有在group by 分组函数后面,所以报错。下面说下GROUP BY的使用规则:1、GROUP BY 和 ORDER BY一起使用时,ORDER BY要在GROUP BY的后面。2、ORDER BY 的字段在GROUP原创 2017-09-25 12:14:58 · 8119 阅读 · 1 评论 -
oracle中trim,ltrim,rtrim函数用法
oracle中trim,ltrim,rtrim函数用法该函数共有两种作用:第一种,即大家都比较熟悉的去除空格。例子:--TRIM去除指定字符的前后空格SQL> SELECT TRIM(' dd df ') FROM dual;TRIM('DDDF')------------dd df--LTRIM去除指定字符的前面空格SQL> SELECT LTRIM(转载 2017-09-26 11:13:02 · 2369 阅读 · 0 评论 -
Oracle 游标属性
Oracle游标常用属性:%FOUND:变量最后从游标中获取记录的时候,在结果集中找到了记录。%NOTFOUND:变量最后从游标中获取记录的时候,在结果集中没有找到记录。%ROWCOUNT:当前时刻已经从游标中获取的记录数量。%ISOPEN:是否打开。例子:declare cursor cur_emp(var_job in varchar2:='原创 2017-10-09 13:42:08 · 3615 阅读 · 0 评论 -
ORA-01034和ORA-27101的解决方法
在sqlplus上执行了:shutdown immediate 后,下次再次连接system数据库实例时,就报了上面两个错误,百度了一下,找到了解决方法:在cmd上顺序执行如下操作即可:原创 2017-09-22 11:05:35 · 1745 阅读 · 0 评论 -
创建并调用带输入(IN)参数的存储过程
/*创建一个带IN模式参数的存储过程*/create or replace procedure pro_insert(num_deptno in number,var_ename in varchar2,var_loc in varchar2)isbegin insert into dept values(num_deptno,var_ename,var_loc); commit原创 2017-10-10 15:32:50 · 3686 阅读 · 1 评论 -
创建并调用带输出(OUT)参数的存储过程
1、/*创建一个带OUT模式参数的存储过程:*/create or replace procedure pro_insert(num_deptno in number,var_ename in varchar2,var_loc in varchar2)isbegin insert into dept values(num_deptno,var_ename,var_loc); co原创 2017-10-10 16:26:55 · 7899 阅读 · 0 评论 -
oracle中的特殊类型:%type、record、%rowtype
1、%type类型:声明一个与指定列相同的数据类型。 如:var_ename emp.ename%type; 声明的var_ename的数据类型与emp表中的ename列数据类型相同。2、record类型:也成为‘记录类型’,要先定义一个记录类型,再使用记录类型声明一个记录类型的变量。 如:定义一个记录类型: type emp_record is原创 2017-10-10 17:04:37 · 1501 阅读 · 0 评论 -
Oracle11 g数据库过期
公司使用的Oracle11 g 32位 数据库出现有效期过期问题,解决此问题可以使用下面的方法:1、查询密码有效期system登录 SQL>select * from dba_profiles where profile=’DEFAULT’and resource_name =’PASSWORD_LIFE_TIME’;2、修改数据库过期,修改后不需要重启SQL>al原创 2017-06-15 16:51:43 · 636 阅读 · 0 评论