Oracle变量的定义赋值及使用 admin 2023-05-24 10:45:01 篇首语:本文由小编为大家整理,主要介绍了Oracle变量的定义赋值及使用相关的知识,希望对你有一定的参考价值。 首先,当在cmd里办入scott密码提示错误时,可以这样改一下,scott的解锁命令是: 以system用户登录:cmdsqlplus system/tigertigeralter user scott identified by "tiger" account unlock;--学习块的结构--学习定义变量(了解数据类型)及赋值--了解:各种PL/SQL块的类型--块的结构--案例:根据工号,输出员工姓名 SELECT * FROM emp;--块!DECLARE v_empno NUMBER(4); v_ename VARCHAR2(10);BEGIN v_empno := &请输入工号; --必须要将查询结果放到变量 SELECT ename INTO v_ename FROM emp WHERE empno=v_empno; dbms_output.put_line(v_ename);END; --异常DECLARE v_empno NUMBER(4); v_ename VARCHAR2(10);BEGIN v_empno := &请输入工号; --必须要将查询结果放到变量 SELECT ename INTO v_ename FROM emp WHERE empno=v_empno; dbms_output.put_line(v_ename); EXCEPTION WHEN OTHERS THEN dbms_output.put_line("执行出错了,老板!");END; --小结DECLARE --变量区(不能在begin..end中定义)BEGIN --业务代码区 excetipn --异常捕获区END; --定义变量(了解数据类型)--2种:保存一个值=简单变量;保存多个值=复合变量--简单变量类型:char,varchar2,number,date(同时也列类型),boolean,表.字段%type--复合变量:表%rowtype,recordDECLARE v_empno NUMBER(4); v_ename VARCHAR2(10); v_job emp.job%TYPE; --如果字段类型改变,脚本不需要改变BEGIN v_empno := 7566; SELECT ename,job INTO v_ename,v_job FROM emp WHERE empno=v_empno; dbms_output.put_line(v_ename); IF(v_job="MANAGER")THEN dbms_output.put_line("经理,吃过饭没。"); END IF;END; --需要同上,将多个变量放到一个记录对象中DECLARE v_empno NUMBER(4); my_row emp%ROWTYPE;BEGIN v_empno := 7566; SELECT * INTO my_row FROM emp WHERE empno=v_empno; dbms_output.put_line(my_row.ename||","||my_row.sal);END; --有时不需要一整列,只需要其中几个列。此时用recordDECLARE --自定义复合类型 my_emp TYPE my_emp_type IS RECORD( yg_name emp.ename%TYPE, yg_sal emp.sal%TYPE ); my_row my_emp_type; --变量名 数据类型BEGIN SELECT ename,sal INTO my_row FROM emp WHERE empno=7788; dbms_output.put_line(my_row.yg_name||","||my_row.yg_sal);END; --扩展:Oracle没有boolean类型?--思考:性别 true=男,false=女。缺点?性别=保密。所以Oracle建立用char(1)替代,1=男2=女3=保密4=人妖--Oracle的各种集合类型,对应 java的数组。--引用变量:在讲解存储过程以后再讲解。--绑定变量(命令窗口中执行,绑定变量用了 :)SQL> var name varchar2(10)SQL> execute :name :="hello";PL/SQL procedure successfully completedSQL> print name;name---------hello 如图: declare l_dept integer := 20; currtime date := sysdate; l_nam varchar2(20) := to_char(add_months(trunc(sysdate),-12),"yyyymmdd"); -- to_char(sysdate,"MM")-13; type num_list is varray(5) of number; arr_id num_list := num_list(100,101,123,33,234); begin l_dept := 30; dbms_output.put_line(l_dept); dbms_output.put_line(currtime); dbms_output.put_line(l_nam); dbms_output.put_line(arr_id(1)); end;变量的定义:l_dept定义的是整型,currtime为日期型,l_nam为字符型并往前退12个月的日期赋值,而-- to_char(sysdate,"MM")-13;会出现负数。type num_list is varray(4) of number;则是定义数据类型为整型的数组,并且数组长度为4,arr_id num_list := num_list(100,101,123,33,234);则使用num_list定义的数组类型定义arr_id变量,并为arr_id赋值。dbms_output.put_line函数则会在DMS Output选项卡中输出,注意:dbms_output.put_line必须放到begin和end之内。truncate table t4; --清空表里的数据declareop nvarchar2(100);i int ;j int :=100;begin while j<200 loop select nvl(max(id),0) +1 into i from t4; insert into t4 values(i,j,"test"||i); dbms_output.put_line(i); j:=j+1; end loop;end;-- select * from t4; 以上是关于Oracle变量的定义赋值及使用的主要内容,如果未能解决你的问题,请参考以下文章 全志 Tina Linux RISC-V E907核心开发指南支持百问网V85x系列开发板100ask-v853-pro v851s等 POSTGRESQL的连接的端口号是多少 您可能还会对下面的文章感兴趣: 相关文章 浏览器打不开网址提示“ERR_CONNECTION_TIMED_OUT”错误代码的解决方法 如何安装ocx控件 VMware的虚拟机为啥ip地址老是自动变化 vbyone和EDP区别 linux/debian到底怎么重启和关机 苹果平板键盘被弄到上方去了,如何调回正常? 机器学习常用距离度量 如何查看kindle型号