oracle
无名老仙
这个作者很懒,什么都没留下…
展开
-
使用comment关键字注释字段名
当oracle数据库结构很复杂的时候维护起来成本很高,如果在建表的时候能够对每一个字段加一个注释,desc回顾起来会更加顺畅!一、执行以下建表语句CREATE TABLE Sysusers( ID VARCHAR2(64) PRIMARY KEY, --主键 NAME VARCHAR2(16) NOT NULL, --登录名称 PASSWORD VARCH...原创 2020-04-24 17:44:39 · 2920 阅读 · 0 评论 -
创建表时同时有not null 和 default报ora-00907(缺失右括号)
注意dafault在前,not null 在后!原创 2019-11-19 09:53:27 · 1247 阅读 · 2 评论 -
oracle查询语句的执行顺序
一、select语句的执行顺序1、from部分2、where部分3、group by部分4、having部分5、select部分6、order by部分二、验证where部分、select部分执行顺序SELECT NAME,(CASE gender WHEN 1 THEN '男' WHEN 0 THEN '女' END),birth 生日 FROM students WHER...原创 2019-09-23 10:58:07 · 641 阅读 · 0 评论 -
jdbc分页查询的简单实现
首先oracle分页查询数据可以使用rownum和子查询联合实现;具体sql语句为:SELECT ID,numbers,NAME,(CASE gender WHEN 1 THEN '男' WHEN 0 THEN '女' END),birth,phone,daid,cid,apartment FROM (SELECT ROWNUM rt,s1.* FROM students s1 WH...原创 2019-09-23 16:27:48 · 584 阅读 · 0 评论 -
PreparedStatement相较于Statement的优点
在jdbc组件中,尽量使用PreparedStatement而避免使用Statement,原因如下:1、PreparedStatement可读性更高,维护性更强(Statement需要动态拼接);2、PreparedStatement在被编译后会被缓存下来,下次调用相同的预编译语句时不需要重新编译,只需传入对应参数就行;而对于Statement来说,及时insert into tb_name ...原创 2019-09-25 09:29:36 · 1338 阅读 · 0 评论 -
jdbc实现简单的分组聚合统计查询
oracle数据库中原有salary表数据如下:一、准备好本程序基础文件:DataSourceForPool(数据库连接池管理工具类)、Env(读取数据库属性配置文件)、DataSource.properties(数据库属性配置文件)。以下实现分组聚合统计查询:二、数据库访问组件SalaryDao.javaimport java.sql.Connection;import java...原创 2019-09-25 17:19:36 · 1722 阅读 · 0 评论 -
jdbc调用存储过程的简单使用
一、在oracle中创建一个简单的存储过程:CREATE OR REPLACE PROCEDURE proc_hello(username IN OUT VARCHAR2) AShello STRING(4) := '你好';BEGIN username:=hello||' '||username;END;二、定义存储过程访问数据库的组件类ProcdureDao.jav...原创 2019-09-26 09:11:06 · 234 阅读 · 0 评论 -
jdbc组件访问存储过程输出参数类型为sys_refcursor的简单示例
一、创建存储过程创建存储过程CREATE OR REPLACE PROCEDURE proc_dep_info (datas OUT SYS_REFCURSOR)ASBEGIN OPEN datas FOR SELECT * FROM dept;END proc_dep_info;二、创建数据库访问组件类DeptDao.javaimport java.sq...原创 2019-09-26 17:43:48 · 1057 阅读 · 0 评论 -
jdbc批处理简单应用
一、建立Person的javaBeen形式import java.util.Date;public class Person { private String name; private int age; private String address; private Date birth; public Person() {} public Person(St...原创 2019-09-27 09:16:28 · 123 阅读 · 0 评论 -
jdbc处理银行转账事务
一、建立余额表(bal_tab,余额必须大于0)、交易表(bus_tab)二、建立转账事务类BankBusiness.javaimport java.sql.Connection;import java.sql.PreparedStatement;import java.sql.SQLException;import cn.yanchengdai.util.DataSourceF...原创 2019-09-27 11:46:42 · 435 阅读 · 0 评论 -
jdbc编程出现ORA-00911: 无效字符异常、ORA-00904:标识符无线
jdbc中sql语句结尾处不能添加分号,否则会报错,如下:jdbc中sql语句换行时要注意在加号的前后引号里加空格,防止字符串连接导致无意义,如下:写成"and"+"xxx"----->andxxx...原创 2019-09-30 09:12:48 · 1127 阅读 · 0 评论 -
sql语句case when的使用方法
对于某些数据库表中用0,1来表示性别,当需要查询结果显示男或者女时,可以使用case when语句:SELECT s.name 姓名, (CASE s.gender WHEN 1 THEN '男' WHEN 0 THEN '女' END) 性别, s.birth 生日 FROM students s INNER JOIN classinfo c ON s.cid=c.id WHERE...原创 2019-09-20 10:19:41 · 832 阅读 · 0 评论 -
jdbc查询语句的执行
由 SELECT 语句返回的行集合包括满足该语句的 WHERE 子句所列条件的所有行。由该语句返回完整的行集合叫做结果集。一、定义实体类封装查询结果1、创建Department实体类package com.xzit.pojo;import java.util.Date;public class Department { private String deptno; priv...原创 2019-09-12 17:14:34 · 5148 阅读 · 0 评论 -
java程序中编写sql语句的单引号、双引号问题
java程序编写过程中,sql语句的单引号、双引号的注意点一、修改的字段为字符串类型:String sql = "update Province set DESCRIPTION='hahaha' where id=2";二、修改的字段为变量引用:1、字段为int变量,不需加单引号,但变量左右需加+int num = 1;String sql = "update Provi...原创 2019-09-10 17:00:42 · 3600 阅读 · 0 评论 -
oracle单行函数、聚合函数汇总
oracle数据库系统中定义了许多的函数(预定义),这些函数能够完成特有的数据操作功能,执行效率更高并重复使用。预定义函数按照操作执行特征可以分为:单行函数(对每个记录执行一次)、聚合函数(对多个记录执行一次),以下是具体的使用示例:1、单行函数1.1字符串函数(1)substr(source, start,[length]):提取子串SELECT substr('hjiouhug...原创 2019-08-28 18:30:07 · 505 阅读 · 0 评论 -
oracle序列首值如何从1开始以及currval、nextval
一、创建序列CREATE SEQUENCE seq_emp_tab_idINCREMENT BY 1--------每次增长1START WITH 1------------从1开始MAXVALUE 99-------------最大值为99NOCYCLE------------------不循环二、创建表CREATE TABLE emp_tab( ID NUMBER N...原创 2019-08-29 09:58:48 · 998 阅读 · 0 评论 -
pl/sql编程中%type和%rowtype的简单使用
--%type自定义复合类型(可存储多个数据且可以是不同类型的组合,往往指定多个列到该类型,且只能返回一行记录)DECLARE --声明单元 TYPE tmp_emp IS RECORD( e_name emp.name%TYPE, e_gender emp.gender%TYPE, e_birth emp....原创 2019-09-03 09:41:00 · 749 阅读 · 0 评论 -
oracle中逻辑控制语句的简单使用
--if逻辑判断语句(if后的布尔表达式可以加括号)DECLARE age INT :=17; mess1 VARCHAR(32) := '成年人'; mess2 VARCHAR(32) := '未成年人';BEGIN IF age>=18 THEN dbms_output.put_line(mess1); ...原创 2019-09-03 10:29:43 · 389 阅读 · 0 评论 -
plsql语言中loop、while、for循环的使用
--loop循环DECLARE num INT :=2; counts INT :=0;BEGIN LOOP num := num*2; counts := counts + 1; IF (counts <= 5) THEN dbms_output.pu...原创 2019-09-03 10:52:49 · 3825 阅读 · 1 评论 -
视图的含义及创建只读关系视图
oracle数据库中视图是特有的对象,主要用于查询数据,是虚拟表,它不会存储数据,不存在于物理空间中,这是视图和数据表的重要区别。(修改视图的数据就是修改来源表的数据,一般不提倡修改视图的数据,因此创建时可以使用with read only关键字创建只读视图)CREATE OR REPLACE VIEW view_emp_dept ASSELECT d.deptname, e.name, ...原创 2019-09-03 11:18:53 · 1993 阅读 · 0 评论 -
pl sql语句块打印九九乘法表、矩形、数据统计
--1 利用循环语句完成在输出窗口打印九九乘法表;BEGIN FOR i IN 1..9 LOOP FOR j IN 1..9 LOOP IF (j<=i) THEN dbms_output.put(to_char(j)||'*'||to_char(i)||'='||to_char(i*j)||' ')...原创 2019-09-04 10:05:30 · 1986 阅读 · 1 评论 -
自定义函数以及存储过程的使用
在oracle数据库系统中函数和存储过程都是预编译的plsql代码块的封装,它们具有高效性及重用性。oracle也支持用户自定义函数和存储过程来处理更加复杂的数据业务。 函数和存储过程的相同点:都支持参数定义从而接收外部调用的数据传递到函数或者存储过程中; 函数和存储过程的相同点:函数必须定义返回值,而存储过程不需要定义返回值。 注意点:定义变量时不需要decla...原创 2019-09-06 09:52:07 · 568 阅读 · 0 评论 -
触发器的使用
触发器(trigger)是oracle中功能强大的代码执行单元,定义个数类似函数和存储过程;触发器不允许用户显示调用也不带有返回值,它是在满足特定条件时自动触发执行的。触发器通常由专门数据库开发人员或者dba开发制定。触发器的分类:1、DML(数据操纵语言)触发器,是最常用的触发器,通常在执行insert、update、delete时触发; ...原创 2019-09-06 10:17:48 · 275 阅读 · 0 评论 -
数据库事务控制
数据库事务(datebase transaction),是指作为独立的逻辑工作单元执行的一系列操作,要么完全的执行,要么完全不执行。事务处理可以保证除非事务性单元内的所有操作完全成功执行,否则不会永久更新面向数据的资源。 事务的四大特性: 1、原子性:事务必须是原子工作单元,是不可分割的;对于其数据的修改,要么全都执行,要么全都不执行;...原创 2019-09-06 11:15:37 · 1249 阅读 · 0 评论 -
解决ora-00119和ora-00132问题
1、打开oracle安装目录,找到F:\app\Administrator\admin\orcl\pfile这个文件夹(即使安装oracle的路径不一样,但是在安装的目录下肯定有这个文件夹!)2、用文本编辑器打开下面文件,将local_listener(原值为LISTENER_ORCL)修改为tnsnames_ora中的ADDRESS_LIST的值3、打开cmd,登录sqlplus...原创 2019-08-26 10:42:57 · 421 阅读 · 0 评论