Índice
-- Declarar variáveis numéricas
-- Declara variáveis de string
-- Você pode atribuir números a variáveis de string
-- Atribuir valores às variáveis através da consulta de dados da tabela
-- Tipos de declaração de variáveis de outras maneiras
%TYPE refere-se ao tipo de dados de uma coluna ou ao tipo de dados de uma variável no banco de dados
%ROWTYPE refere-se a uma linha (todos os campos) no banco de dados como um tipo de dados
- Estruturas gramaticais:
DECLARE
-- 声明的地方(变量,常量,游标)
BEGIN
-- 代码的执行逻辑
END;
-- Declarar variáveis numéricas
DECLARE
X NUMBER;
Y NUMBER;
Z NUMBER;
BEGIN
X := 6;
Y := 7;
Z := X + Y;
DBMS_OUTPUT.put_line(Z);
END;
-- Declara variáveis de string
DECLARE
X VARCHAR2(10);
Y VARCHAR2(10);
Z VARCHAR2(10);
BEGIN
X:='AAA';
Y:='BBB';
Z:= X || Y;
DBMS_OUTPUT.put_line(Z);
END;
-- Você pode atribuir números a variáveis de string
DECLARE
X VARCHAR2(10);
Y VARCHAR2(10);
Z VARCHAR2(10);
BEGIN
X:='&请输入X';
Y:='&请输入Y';
Z:= X || Y;
DBMS_OUTPUT.put_line(Z);
END;
-- 当需要手动传参的时候,赋予 '&' ,即可手动传入参数
-- Atribuir valores às variáveis através da consulta de dados da tabela
SELECT
字段1,
字段2,
字段3,
...
into
变量1,
变量2,
变量3
...
from 表名
Exemplo: --De acordo com o número do funcionário inserido, imprima o nome, a ocupação e o salário do funcionário correspondente.
DECLARE
-- 根据需求,定义变量
V_NO NUMBER; -- 员工编号
V_NAME VARCHAR2(10);-- 员工姓名
V_JOB VARCHAR2(10); -- 员工职业
V_SAL NUMBER; -- 薪资
BEGIN
-- 根据需求,定义一个输入的变量
V_NO:='&请输入一个员工工号';
-- 写 sql 逻辑 将 查询的值 赋予到对应的变量中
SELECT
E.ENAME,
E.JOB,
E.SAL
INTO V_NAME,V_JOB,V_SAL
FROM EMP E
WHERE E.EMPNO=V_NO;-- 根据传入的员工编号筛选数据
-- 输出结果:
DBMS_OUTPUT.put_line('员工姓名:'|| V_NAME);
DBMS_OUTPUT.put_line('员工职业:'|| V_JOB);
DBMS_OUTPUT.put_line('员工工资:'|| V_SAL);
END;
-- Pontos a serem observados ao usar SELECT INTO
1.> Ao usar SELECT INTO para atribuir um valor a uma variável, o resultado da consulta e a variável INTO subsequente devem ser consistentes em (número), (tipo) e (sequência). .>
Colunas numéricas podem ser colocadas em variáveis de string.
3.> Variáveis só podem receber um único valor. Ao usar atribuição de consulta, você precisa prestar atenção ao número de linhas retornadas. Deve ser uma linha de dados, não 0 linhas ou múltiplas linhas.
-- Tipos de declaração de variáveis de outras maneiras
%TYPE refere-se ao tipo de dados de uma coluna ou ao tipo de dados de uma variável no banco de dados
DECLARE
V_NO EMP.EMPNO%TYPE; -- 引用 EMP 表中 EMPNO 字段的数据类型
V_JOB EMP.JOB%TYPE;
BEGIN
SELECT
E.EMPNO,
E.JOB
INTO
V_NO,V_JOB
FROM EMP E
WHERE EMPNO=7369;
DBMS_OUTPUT.put_line(V_NO || V_JOB);
END;
%ROWTYPE refere-se a uma linha (todos os campos) no banco de dados como um tipo de dados
DECLARE
V_EMP EMP%ROWTYPE; -- 将 表 EMP 中 一行的数据类型赋予变量
BEGIN
SELECT
E.EMPNO,
E.ENAME,
E.JOB
INTO
V_EMP.EMPNO,V_EMP.ENAME,V_EMP.JOB
FROM EMP E
WHERE EMPNO=7369;
DBMS_OUTPUT.put_line(V_EMP.EMPNO || V_EMP.ENAME || V_EMP.JOB);
END;
--constante
As constantes recebem valores iniciais quando declaradas, e a reatribuição de
CONSTANT não é permitida em tempo de execução.
DECLARE
PI CONSTANT NUMBER:=3.1415926;--圆周率
R NUMBER:=3;
AREA NUMBER;
BEGIN
AREA:=PI*R*R;
DBMS_OUTPUT.put_line(AREA);
END;