plsql语法
❶ 关于PLsql 语法写法请教高人指点:
用union吧
❷ plsql想批量把图片存入到表中
一、先来熟悉一下将要使用的对象方法:
用来获取上一个页面传 递过来的数据一般是使用Request对象。同样的,我们也可以使用Request对象 来获取上传上来的文件数据,使用的方法是Request.BinaryRead()。
要从数据库中读出来图片的数据显示到网页上面要用到的方法是:Request.BinaryWrite()。
二、在得到了图片的数据,要保存到数据库中的时候, 不可以直接使用Insert语句对数据库进行操作,而是要使用ADO的 AppendChunk方法。
同样的,读出数据库中的图片数据,要凳团袜使用枣激GetChunk方 法。
各个方法的具体语法如下:
* Request.BinaryRead语法:
variant = Request.BinaryRead(count)
参数
variant
返回值保存着从客户端读取到数据。
count
指明要从客户端读取的数据量大小,这个值小于或者等于使用方法
Request.TotalBytes得到的数据量。
* Request.BinaryWrite语法:
Request.BinaryWrite data
参数
data
要写入到客户端浏览器中的数据包。
* Request.TotalBytes语法:
variant = Request.TotalBytes
参数
variant
返回从客户端读取到数据量的字节数。
* AppendChunk语法
将数据追加到大型文本、二进制数据 Field 或 Parameter 对象。
object.AppendChunk Data
参数
object Field 或 Parameter 对象
Data 变体型,包含追加到对象中的数据。
说明
使用 Field 或 Parameter 对象的 AppendChunk 方法可将长二进制或字符数
据填写到对象中。在系统内存有限的情况下,可以使用 AppendChunk 方法对长
整型值进行部分而非全部的操作。
* GetChunk语或团法
返回大型文本或二进制数据 Field 对象的全部或部分内容 。
variable = field.GetChunk( Size )
返回值
返回变体型。
参数
Size 长整型表达式,等于所要检索的字节或字符数。
说明
❸ PLSQL中,select case..when.. then..什么意思怎么用
case when ... then .. when .. then ... end
这种表达式,是sql的不同条件分支结果。
举例如下,
1、创建数据表,create table test_student(stu_id number, class_id number);
❹ PLSQL存储过程
存储过程是 PLSQL 的一个方面的应用,而 PLSQL 是存储过程的基础。
即存储过程需要用到 PLSQL
创建无参存储过程 hello ,无返回值
语法:
删除存储 hello ,语法 drop procere 过程名
调用存储过程方式一: exec 过程名
exec hello;
调用过程存储方式二: PLSQL 程序
调用过程存储方式三: Java 程序 CallableStatement 接口
创建有存储过程的 raiseSalary (编号),为7369号员工涨工资10%,演示in的语法,大小写不敏感
创建有参存储过程 findEmpNameAndSalAndJob (编号),查询7788号员工的姓名,职位,月薪,返回多个值,演示 out 的用法
用存储过程,写一个计算个人所得税的功能
❺ PLSQL选择控制语言IF.....THEN....END IF 如何运用
语法格式:
IF 条件1 THEN
语句序列1;
ElSIF 条件2 THEN
语句序列2;
[
ELSIF 条件n THEN
语句序列 n;
]
[
ELSE
语句序列 n+1
……
]
END IF;
例:取出7369的薪水,如果薪水<1200,则输出'low',如果<2000则输出'middle',否则'high'
--注意elsif的写法,then后面没有分号
--注意最后一个else后面没有then
--注意end if后面有一个分号
declare
v_sal emp.sal%type;
begin
select sal into v_sal from emp where empno = 7369;
if v_sal < 1200 then
dbms_output.put_line ('salgrade is low');
elsif v_sal < 2000 then
dbms_output.put_line ('salgrade is middle');
else
dbms_output.put_line ('salgrade is high');
end if;
end;
❻ plsql修改表数据语法
1.plsql里面不允许执行select * from tablename的银斗语句,只能执行select * into xxx from tablename
2.要修改行记录你要锋贺磨使用游标操作
3.使拍碰用for update 是可以的,他不是不稳定只是他操作会锁表
4.rowid 在数据库里是不稳定的,他是会变的,你应该使用主键而不是rowid
❼ PLSQL:查询语句简述
SELECT column, group_function
FROM table
[WHERE condition]
[GROUP BY group_by_expression]
[HAVING group_condition]
[ORDER BY column];
语法:SELECT table.column, table.column FROM table1, table2 WHERE table1.column1 = table2.column2;(或者where其他条件)
where子句中的连接条件,一般要满足数据类型相符,含义一致。
如果设置别名,则只能使用别名:
SELECT 别名.column, 别名.column FROM table1 别名1, table2 别名2 WHERE 别名.column1 = 别名.column2;(或者where其他条件)
空橘 例子:select e.ename,e.sal,s.grade,s.losal,s.hisal from emp e,salgrade s
where e.sal between s.losal and s.hisal;--包含边界值
兆坦 例子:SELECT table.column, table.column FROM table1, table2 WHERE table1.column(+) = table2.column;
+在左边,代表左边需要扩展/删除。左边是从表,右边是主表。主表显示全部项目,从表跟随主表扩展/删除。
例子:SELECTtable.column, table.column FROMtable1, table2 WHEREtable1.column = table2.column(+);
+在右边,代表右边需要扩展/删除。右边是从表,左边是主表。主表显示全部项目,从表跟随主表扩展/删除。
左右外连接用起来是一样的,只是表格书写位置的区别。
族亏桐 例子:select w.ename,w.empno,m.ename,m.empno from emp w,emp m
where w.mgr=m.empno;
同一张表,设置两个别名,进行同一张表内的互联,如同一个人既是下属又是上级。
表1 [inner] join 表2 on 表1.列1=表2.列2。
例子:select e.empno,e.deptno,d.loc
from emp e inner join dept d
on e.deptno=d.deptno;
inner可以省略,效果一样的。
主表 left outer join 从表 on 主表.列1=从表.列2
例子:select d.deptno,d.loc,e.empno,e.ename from dept d left outer join emp e
on d.deptno=e.deptno;
从表 right outer join 主表 on 从表.列1=主表.列2
例子:select e.empno,e.ename,d.deptno,d.loc from emp e right outer join dept d
on e.deptno=d.deptno;
例:查询工资高于Jones的员工信息 (也可用自连接查询)
select * from emp where sal>(select sal from emp where ename='JONES') order by sal;
注意:子查询要用括号括起来,子查询中不要加ORDER BY子句。
例子:查询哪个部门没有员工 in(列表)
select deptno from dept where deptno not in (select distinct deptno from emp);
例子:查询工资小于任何办事员,且职位不是办事员的员工信息
any任意值 >any 大于最小值 <any 小于最大值
select ename,sal from emp
where sal<any(select sal from emp where job='CLERK')
and job<>'CLERK';
例子:查询工资大于最高平均工资的员工信息
all所有值 >all 大于最大值 <all 小于最小值
select ename,sal from emp
where sal>all(select avg(sal) from emp group by deptno);
语法:SELECT column, group_function FROM table [WHERE condition] [GROUP BY group_by_expression]
[HAVING group_condition] [ORDER BY column];
例:查询部门平均工资大于2000的部门信息
select deptno,avg(sal) from emp group by deptno having avg(sal)>2000;
❽ plsql查询语句中的not in什么意思
查询不在这个范围类的数据。
例如:select * from student where classID notin (1,4,5)查出的就是classID不在1,4,5这个范围内的数据。
不建议用not in这个关键词来做查询,理由:
1、效率低,2、在使用中容易出现问题,或查询结果有误
PL/SQL Developer是一个集成开发环境,专门开发面向Oracle数据库的应用。PL/SQL也是一种程序语言,叫做过程化SQL语言(Proceral Language/SQL)。PL/SQL是Oracle数据库对SQL语句的扩展。
在普通SQL语句的使用上增加了编程语言的特点,所以PL/SQL把数据操作和查询语句组织在PL/SQL代码的过程性单元中,通过逻辑判断、循环等操作实现复杂的功能或者计算。MySQL 不支持 PL/SQL ,但支持Navicat Premium。
(8)plsql语法扩展阅读:
plsql特性:
1、PL/SQL完善器
该完善器允许您通过用户定义的规则对SQL和PL/SQL代码进行规范化处理。在编译、保存、打开一个文件时,代码将自动被规范化。该特性提高了您编码的生产力,改善了PL/SQL代码的可读性,促进了大规模工作团队的协作。
2、SQL 窗口
该窗口允许您输入任何SQL语句,并以栅格形式对结果进行观察和编辑,支持按范例查询模式,以便在某个结果集合中查找特定记录。另外,还含有历史缓存,您可以轻松调用先前执行过的SQL语句。该SQL编辑器提供了同PL/SQL编辑器相同的强大特性。
3、命令窗口
使用PL/SQL Developer的命令窗口能够开发并运行SQL脚本。该窗口具有同SQL*Plus相同的感观,另外还增加了一个内置的带语法加强特性的脚本编辑器。这样,您就可以开发自己的脚本,无需编辑脚本/保存脚本/转换为SQL*Plus/运行脚本过程,也不用离开PL/SQL Developer集成开发环境。
参考资料来源:网络-plsql