oracle pl/sql 编程,oracle PL/SQL基础编程

PL/SQL(Procedural Language/SQL)是oracle中引入的一种过程化编程语言

PLS-00103:出现符号"declare"在需要下列之一时

符号"begin"被替换为"declare"后继续

存储过程里不需要用declare关键字

PLS-00103:出现符号"end-of-file"在需要下列之一时:

end要和if以及begin匹配,完了之后要用/来表示完了

create or replace procedure addStu is

v_NewMajor varchar2(10):='Chemistry';

v_FirstName varchar2(10):='Scott';

v_LastName varchar2(10):='Tiger';

begin

update students

set major=v_NewMajor

where first_name=v_FirstName

and last_name = v_LastName;

if sql%notfound then

insert into students (first_name, last_name, major)

values (v_FirstName, v_LastName, v_NewMajor);

end if;

end;

/

select text from user_source where name = upper('addStu') and type = 'PROCEDURE';

这里好像一定要用upper('addStu')不然就会出现为选行。

执行过程的时候

exec 过程名

call 过程或函数

首先创建一个临时表

create table temp_table (

my_com varchar2(35),

vcomment varchar2(35));

spool命令可以指定路径和文件名,需要有写权

create or replace procedure edtmp is

/* 存储过程编程示例 */

v_Number number(5) :=115;

v_Comment varchar2(35);

begin

if v_Number < 500 then

v_Comment := 'Too small';

insert into temp_table (my_com, vcomment)

values ('This is too cazy', v_Comment);

elsif v_Number < 1000 then

v_Comment := 'A little bigger';

insert into temp_table (my_com, vcomment)

values ('This is only luck', v_Comment);

else

v_Comment := 'That enough';

insert into temp_table (my_com, vcomment)

values ('Maybe good',v_Comment);

end if;

end;

/

PL/SQL构建于SQL之上,可以用来编写包含SQL语句的程序。

(那么这个和其他编程语言通过驱动连接到数据库对数据进行操作的不同之出在于?)

PL/SQL中可以包括:

块结构

变量和类型

条件逻辑

循环

游标,保存查询返回的结果

过程

函数

包,可以把过程和函数组合到一个单元中。

数据抽象

create type可以用来定义对象类型

在过程中执行另一个过程时直接写过程名就行了

PLS-00428:在此select语句中缺少INTO子句

答:在PL/SQL程序中不允许出现不带into子句的select语句,查询出来的数据必须得找个容器来装。

有这样一段过程

create or replace procedure instu is

rem 使用单行注释

v_major varchar2(10):='Germany'; -- 定义专业

v_first_name varchar2(10):='Fisher'; -- 定义姓氏

v_last_name varchar2(10):='Mark'; -- 定义名字

begin

-- 将这三个作为一条信息插入到表中

insert into students (major, first_name, last_name) values

(v_major, v_first_name, v_last_name);

end;

/

然后就报错了

PLS-00103:出现符号在需要下列之一时

:= . ( @ %

; not null range default character

我还以为中文字符打进去了,原来全是第二句报的错。

这里给了我答案,原来rem是remark的缩写,只能用在sql plus 的单行命令中,

而不能用在PL/SQL中,在PL/SQL中只能使用--或者/*  */进行注释,这个问题纠结了半天,就是没想到是该死的rem,

真真是叫哔了狗。

在oracle中重新编译存储过程的方法:

第一种:如果使用PL/SQL Developer工具

左侧工具栏中选中“存储过程”-》选择已经失效的procedure-》右键-》选择重新编译即可

第二种:命令行版

1、查找无效对象

select 'Alter '|| object_type ||'  '||object_name||'  compile;'  from user_objects where status = 'INVALID';

2、重新编译存储过程procedure_name,执行下面的脚本即可

alter procedure procedure_name compile;

my_title books.title%TYPE;

这里的意思是my_title这个变量的类型和表books中字段title的类型是一样的

oracle设置显示的行数和列数

show pagesize;

set pagesize 100;

shole linesize;

set linesize 100;

DBMS_OUTPUT是用来输出信息的,这是一个PL/SQL的系统包,但是有个前提是要设置一下:

set serveroutput on

为何感觉我总是很逗比

create or replace procedure usecur as

-- 声明这两个变量

v_first_name varchar2(20);

v_last_name varchar2(20);

-- 声明游标

cursor c_Students is

select first_name, last_name

from students;

begin

-- 启动游标进程

open c_Students;

loop

fetch c_Students into v_first_name, v_last_name;

exit when c_Students%NOTFOUND;

--如果找到Scott就退出

while v_first_name = 'Scott' loop

exit;

end loop;

end loop;

-- 过程结束

-- 不用的话就及时关闭游标进程

close c_Students;

if v_first_name = 'Scott' then

DBMS_OUTPUT.PUT_LINE('找到这个傻叉了');

else

DBMS_OUTPUT.PUT_LINE('找不到这个傻叉');

end if;

end;

/

Oracle数据库—— PL&sol;SQL基础编程

一.涉及内容 1. 掌握PL/SQL程序块的结构,理解并熟悉各种变量的应用. 二.具体操作 (一)使用system用户登录SQL*PLUS,使用SQL语句创建用户:u_你的姓名首字母(例如:u_zs) ...

二十、oracle pl&sol;sql基础

一.pl/sql developer开发工具pl/sql developer是用于开发pl/sql块的集成开发环境(ide),它是一个独立的产品,而不是oracle的一个附带品. 二.pl/sql介绍 ...

oracle pl&sol;sql 基础

一.pl/sql developer开发工具pl/sql developer是用于开发pl/sql块的集成开发环境(ide),它是一个独立的产品,而不是oracle的一个附带品. 二.pl/sql介绍 ...

PL&sol;SQL 基础编程

PL/Sql 编程 PL/Sql结构 [declare] --声明变量 begin --执行部分 [exception] ---异常处理部分 end PL/Sql  基本数据类型 数值类型 1. nu ...

Oracle pl&sol;sql 基础入门语法

PL/SQL是一种块结构的语言,这意味着PL/SQL程序被划分和编写代码的逻辑块.每块由三个子部分组成:1     声明 此部分开头使用关键字DECLARE.它是一个可选的部分,并限定在该程序中使用的 ...

Oracle PL&sol;SQL 高级编程

1. 复合数据类型--记录类型 Ø        语法格式 type  类型名 is   record ( 字段1  字段1类型 [not null]:=表达式1; 字段2  字段2类型 [not n ...

Oracle PL&sol;SQL基础

1.下载sql developer数据库连接可视化工具 连接地址:点我下载 下载完成,安装有Java环境,解压即可运行,也可以在linux系统中运行.

浅析Oracle PL&sol;SQL 学习--未完待续

这是一篇关于Oracle Pl/SQL数据库编程的课程学习分享... 首先说明几点: 学习这门课程之前,已经学过并且掌握一些基础的SQL语句.数据库结构分析.ER图设计等知识: 这里也只是较为大概地将 ...

随机推荐

ThreadStatic应用&lpar;Identity补完&rpar;

关于Identity Identity自增序列/唯一断标识 起初做这个东西,是在一个内部组件中,用于在高并发的环境下得到一个较短的“相对”不重复标识字符串;(这里说的相对是指一定的数量下不重复) 灵感 ...

【iCore2双核心板视频教程二】iM&lowbar;LAN 100M 以太网模块TCP通信例程

============================== 技术论坛:http://www.eeschool.org 博客地址:http://xiaomagee.cnblogs.com 官方网店:h ...

手机端overflow scroll卡顿的情况

在容器里设置或者html,body{-webkit-overflow-scrolling: touch;}

POJ1135&lowbar;Domino Effect&lpar;最短&rpar;

Domino Effect Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 8224   Accepted: 2068 Des ...

&lbrack;Rails&rsqb; 从 Request 到 Response(1)

本文翻译自:Rails from Request to Response 系列:个人选择了自己感兴趣的部分进行翻译,需要阅读原文的同学请戳前面的链接. 第一部分 导言(Introduction) 服务 ...

error LNK1123&colon; 转换到 COFF 期间失败&colon; 文件无效或损坏

一.情形描述 下载了一个VS的源码,不知道此源码的版本.使用VS2010编译时出现如下报错: error LNK1123: 转换到 COFF 期间失败: 文件无效或损坏 二.解决方法 在VS2010界 ...

js excel 列表导出

@ "时,T ...

20165305 《网络对抗技术》 Kali安装

一.安装kali 在虚拟机中安装kali我参考了下面的网页,里面写的很全面,所以我就不重复了,我主要说一下kali里面的环境配置. 在虚拟机中安装kali linux 注意:输入用户和密码时,kali ...

Spring依赖注入(DI)详解

一.依赖简介 一个典型的企业应用程序不是由一个单一的对象组成(或Spring的说法中的bean).即使是最简单的应用程序也只有几个对象一起工作来呈现最终用户看作是一个连贯的应用程序.如何从定义许多独立 ...

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值