Variáveis PL/SQL

Índice

- Estruturas gramaticais:

-- 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

--constante


- 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;

おすすめ

転載: blog.csdn.net/weixin_57024726/article/details/133268240
おすすめ