• oracle_申明与赋值


    1.格式

    1. --1.程序块结构
    2. declare
    3. --申明部分
    4. begin
    5. --执行部分
    6. end

    2.写一个空的程序块

    1. --1.程序块结构
    2. declare
    3. --申明部分
    4. begin
    5. --执行部分
    6. null
    7. end

    控制台输出【hello world】

    1. --2.简单的程序输入
    2. DECLARE
    3. --申明部分
    4. BEGIN
    5. --执行部分
    6. dbms_output.put_line('hello world');
    7. END;

    3.定义变量 变量赋值 变量是可变的

    1. --已知长度求周长
    2. DECLARE
    3. --申明部分
    4. v_long number;
    5. v_wide number;
    6. v_perimeter number;
    7. BEGIN
    8. --执行部分
    9. v_long:=5;
    10. v_wide:4;
    11. v_perimeter:=(v_long*v_wide)*2
    12. --输出到控制台
    13. dbms_output.put_line('v_perimeter =' || v_perimeter);
    14. END;
    15. --申明变量的时候可以直接赋值,赋初始值
    16. DECLARE
    17. --申明部分
    18. v_long number:=5;
    19. v_wide number:4;
    20. v_perimeter number;
    21. BEGIN
    22. --执行部分
    23. v_perimeter:=(v_long*v_wide)*2
    24. --输出到控制台
    25. dbms_output.put_line('v_perimeter =' || v_perimeter);
    26. END;

    变量是可变的

    1. DECLARE
    2. --申明部分
    3. v_long number :=5;
    4. v_wide number:4;
    5. v_perimeter number;
    6. BEGIN
    7. --执行部分
    8. v_long:=8;--改变v_long的值
    9. dbms_output.put_line('v_long =' || v_long);--输出v_long的值
    10. v_perimeter:=(v_long*v_wide)*2
    11. --输出到控制台
    12. dbms_output.put_line('v_perimeter =' || v_perimeter);--||是拼接的意思
    13. END;

    4.定义常量constant 常量赋值 常量是不可变的,必须赋初始值

    1. --4定义常量constant 常量赋值 常量是不可变的,必须赋初始值
    2. --已知半径求直径
    3. declare
    4. v_pi constant number:=3.14;
    5. v_r number :=3;
    6. v_area number;
    7. BEGIN
    8. --执行部分
    9. v_area:=v_pi*v_r*v_r;
    10. dbms_output.put_line('v_area =' || v_area);--||是拼接的意思
    11. END;

    5.字符/日期数据类型的变量

    1. declare
    2. --申明部分
    3. v_name VARIANCE2(30):='lisi';
    4. v_date date:=sysdate;
    5. begin
    6. --执行部分
    7. v_date:=to_date('20240422','yyyymmdd')
    8. dbms_output.put_line('v_date =' || v_date);--||是拼接的意思
    9. dbms_output.put_line('v_name =' || v_name);--||是拼接的意思
    10. end;

    6.隐式游标及其特性--只能返回一行数据,返回多行数据或者没有数据返回会报错

    语法:select into(表里面的某个字段的某个值放到变量里)

    1. --隐式游标及其特性--只能返回一行数据,返回多行数据或者没有数据返回会报错
    2. --语法 select INTO(不能直接执行select into)
    3. declare
    4. --申明部分
    5. v_name varchar2(30);
    6. v_sal number;
    7. BEGIN
    8. --执行部分
    9. select ename,sal into v_name,v_sal from emp where emp=100;
    10. dbms_output.put_line('v_name =' || v_name);
    11. dbms_output.put_line('v_sal =' || v_sal);
    12. dbms_output.put_line('姓名:' || v_name|| v_sal);
    13. END;
    14. --特性1.:返回多行数据会报错
    15. declare
    16. --申明部分
    17. v_name varchar2(30);
    18. v_sal number;
    19. BEGIN
    20. --执行部分
    21. select ename,sal into v_name,v_sal from emp ;
    22. dbms_output.put_line('姓名:' || v_name|| v_sal);
    23. END;
    24. --特性2:没有数据返回会报错
    25. declare
    26. --申明部分
    27. v_name varchar2(30);
    28. v_sal number;
    29. BEGIN
    30. --执行部分
    31. select ename,sal into v_name,v_sal from emp where v_name='o' ;
    32. dbms_output.put_line('姓名:' || v_name|| v_sal);
    33. END;
    34. --防止报错---加聚合函数
    35. declare
    36. --申明部分
    37. v_name varchar2(30);
    38. v_sal number;
    39. BEGIN
    40. --执行部分
    41. select max(ename),max(sal) into v_name,v_sal from emp ;
    42. dbms_output.put_line('姓名:' || v_name|| v_sal);
    43. END;

    7.%type / %rowtype 定义数据类型

    1. 7.%type / %rowtype 定义数据类型
    2. --%type:引用数据库中的某一列的数据类型或者某一个变量的数据类型
    3. declare
    4. --申明部分
    5. v_name emp.ename%type;
    6. BEGIN
    7. --执行部分
    8. select ename into v_name from emp where emp=100;
    9. dbms_output.put_line('v_name =' || v_name);
    10. END;
    11. --%rowtype:引用数据库中的一行(所有字段)作为数据类型
    12. declare
    13. --申明部分
    14. v_all emp%rowtype;
    15. BEGIN
    16. --执行部分
    17. select ename into v_all.ename,v_all.sal from emp where emp=100;
    18. dbms_output.put_line(v_all.ename|| v_all.sal );
    19. END;

  • 相关阅读:
    代码随想录day32|122.买卖股票的最佳时机II|55. 跳跃游戏|45.跳跃游戏II|Golang
    5-Nacos环境搭建
    建立时间和保持时间的模型分析
    Java学习笔记4.1.1 字符串 - String类
    4.Spring Cloud Gateway 入门与使用【SpringCloudGateway组成、断言的多种类型、结合Nacos和LoadBalancer使用、过滤器使用、限流使用、重试过滤器使用】
    Hbase权限访问命令、报错:Grant无权限(acl文件少了)
    Python 实现http server接收mutipart/form-data文件 方法2
    诊断DLL——Vector模板生成Send2Key.dll
    R语言拟合ARIMA模型:剔除ARIMA模型中不显著的系数、设置fixed参数指定需要被剔除的系数(参数)
    如何在虚幻5的建模模式中以对齐网格的方式插入一条边?
  • 原文地址:https://blog.csdn.net/a874045/article/details/138088185