基础语法
[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;