存储过程

这篇博客介绍了PL/SQL中的基础语法,特别是变量与常量的使用,包括常量定义、%type类型以及%rowtype行类型的详细解释。通过示例展示了如何声明和使用这些概念,以及如何调用存储过程,解决在调用过程中可能出现的'匿名块已完成,没有sql输出'的问题。" 113872346,9311708,matlab扩频通信系统仿真与解析,"['matlab', '信号处理', '通信系统', '仿真']
摘要由CSDN通过智能技术生成

基础语法

[declare] --中括号表示如果没有声明部分可以不用这个declare关键字
 --声明部分,变量/常量必须在这里声明 
begin 
 --逻辑处理部分 
--在逻辑处理部分的最后 
 [exception] 
 --异常处理部分 
end; 

输出:打印一句HelloWorld

--Oracle 默认不支持控制台输出 
set serveroutput on size unlimited ; --同一次会话有效 
begin 
 --控制台输出 
 dbms_output.put_line('HelloWorld'); 
end; 

plsql-变量与常量

常量

set serveroutput on unlimited; --同一次会话有效
declare
 --声明一个常量
 --常量的声明格式:
 -- <常量名> constant <数据类型>[(大小)]:=<初始值>
 --注意:常量的初始值必须要写
 --字符类型必须要设定大小,非字符类型不要设置大小 
 v_hello constant varchar2(10):='HelloWorld'; 
begin 
 --控制台输出 
 dbms_output.put_line(v_hello); 
 
end; 

变量

declare 
 -- <变量名> <数据类型>[(大小)][:=初始值]; 
 v_ename varchar2(10); 
begin 

end; 

%type 类型 ,直接引用表的对应字段的数据类型

使用格式: 表.字段名%type

 --需求:指定员工的编号,输出员工的姓名,工资等等
declare 
 --指定一个员工编号 
 --注意:变量或常量使用 v_前缀,与表的字段名区分, 单词 variable 的缩写。 
 v_empno constant number:=7788; 

 --变量的声明 
 --声明的语法 
 -- <变量名> <数据类型>[(大小)][:=初始值]; 
 v_ename emp.ename%type; --直接引用表的声明的类型 
 v_sal emp.sal%type; 
 
begin 
 --通过员工编号查询员工姓名 
 --SQL 语句的返回的字段,只在当前的 SQL 语句有效。 
 --select 使用 into 关键字将返回的字段值赋予变量 
 select ename,sal into v_ename,v_sal from emp where empno=v_empno; 
 dbms_output.put_line('员工名:'||v_ename||',工资'||v_sal); 
end; 

%rowtype 行类型

格式:变量名 表名%rowtype
例如:指定员工的编号,输出员工的姓名,工资,部门编号

declare 
 --指定一个员工编号 
 --注意:变量或常量使用 v_前缀,与表的字段名区分, 单词 variable 的缩写。 
 v_empno constant number:=7788; 
 --变量的声明 
 --声明行类型 
 v_emp emp%rowtype; 
 
 begin 
 --通过员工编号查询员工姓名 
 --SQL 语句的返回的字段,只在当前的 SQL 语句有效。 
 --select 使用 into 关键字将返回的字段值赋予变量 
 select ename,sal,deptno into v_emp.ename,v_emp.sal,v_emp.deptno from emp where 
empno=v_empno; 
 dbms_output.put_line('员工名:'||v_emp.ename||',工资'||v_emp.sal||',部门编号'||v_emp.deptno); 
end; 

调用存储过程显示:匿名块已完成,没有sql输出

示例:
set serveroutput on; //加上这一句就可以了
declare
m_page_index constant NUMBER(20):=1;
m_frequent constant NUMBER(20):=0;
m_do_count constant NUMBER(20):=0;
m_product_type constant VARCHAR2(25):=‘IDPNN C 20A 6KA’;
m_cur SYS_REFCURSOR;
begin
PRO_PROD_TYPE_WAP_SEEK(m_page_index,m_frequent,m_do_count,m_product_type,m_cur);
end;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值