北大青鸟oracle学习笔记17
数据类型使用
1.声明:
a.格式:Variable_name [constant] databyte [not null] [:=default expression]
b.变量与常量声明基本一致,使用constant声明的为常量,不使用为变量,并且赋值只能在DECLARE区域赋值;
c.使用%TYPE和%ROWTYPE声明可以使变量的类型与表中字段类型或整个记录类型保持一致;
2.赋值:
a.使用“:=”赋值;
b.使用“select into” 或 “fetch into”赋值;
c.使用“&str”从键盘输入赋值;
DECLARE
eno VARCHAR(10):='0';
ename VARCHAR(20);
isValid BOOLEAN := TRUE;
empName CONSTANT VARCHAR(10):='pf';
BEGIN
eno:='1';
ename:='name1';
dbms_output.put_line('eno:'||eno);
dbms_output.put_line('ename:'||ename);
-- dbms_output.put_line('isValid:'||to_char(isValid));
dbms_output.put_line('empName:'||empName);
select stu_id, stu_name into eno,ename from student where stu_id = '1';
dbms_output.put_line('eno:'||eno);
dbms_output.put_line('ename:'||ename);
END;
匿名pl/sql程序块
无法再oracle中存储,每次执行都需编译
属性
为pl/sql变量和常量引用数据库中的数据类型和对象
变量名 表名.字段名%type 引用数据库列
变量名 表名%rowtype 代表表中的行 访问时采用 变量名.表中列名
declare
stuid student.stu_id%type;
stuname student.stu_name%type;
sturow student%rowtype;
begin
select stu_id,stu_name into stuid,stuname from student where stu_id = '1';
select * into sturow from student where stu_id = '2';
dbms_output.put_line('stuid:'||stuid);
dbms_output.put_line('stuname:'||stuname);
dbms_output.put_line('sturow stu_id:'||sturow.stu_id);
dbms_output.put_line('sturow stu_name:'||sturow.stu_name);
end;
逻辑比较
数值比较
运算符
含义
示例
=
等于
a = 123
!=
不等于
c != 123
<
小于
a < 1
>
大于
b > 4
<=
小于等于
a <= b
>=
大于等于
a >= c
字符比较
运算符
含义
示例
=
等于
name = 'pf'
!=
不等于
name != 'pf'
<
字母顺序排在其前
n
相关文档:
oracle安全
用户管理
DBA授予不同用户不同权利,每个用户可以在授权范围内活动,任何超越权限范围的操作都视为非法。
sys用户 网络管理员 拥有最高权限
conn sys/口令 as sysdba;
system用户 本地管理员
scott用户 示例数据库
建立用户:(必须拥有dba权限)
Create User 用户名 Identified by 口令 [E ......
按表方式的导出,导入
exp SYSTEM/SYSTEM@SBJSDB00 TABLES=KOKAN90.MASTER_SEND_LIMIT LOG=C:\A.LOG
IMP SYSTEM/SYSTEM@SBJSDB00 IGNORE=Y FULL=Y LOG=C:\B.LOG
之前用过很多语句都报错,得到的教训是 先执行exp SYSTEM/SYSTEM@SBJSDB00,按提示一步步输入成功过后,再把提示翻译成参数和参数值
关于参数说明用 exp hel ......
1.在删除一个表中的全部数据时,须使用TRUNCATE TABLE 表名;因为用DROP TABLE,DELETE * from 表名时,TABLESPACE表空间该表的占用空间并未释放,反复几次DROP,DELETE操作后,该TABLESPACE上百兆的空间就被耗光了。
2.having 子句的用法
having 子句对 group by 子句所确定的行组进行控制,having 子 ......
1、Oracle的Package除了把存储过程放到一堆儿以外还有没有其他的作用(好处)?
2、如何把现有的存储过程加入到Package中?
3、除了使用SQL Plus,还有没有什么工具做Package?
4、使用SQL Plus编译Package,是否每次都是编译Package中所有的存储过程?
1、你不觉得把存储过程分门别类是很重要的么,而且不同的package的 ......