永发信息网

pl/sql中如何为rowtype类型中的列赋值?

答案:2  悬赏:50  手机版
解决时间 2021-03-19 07:51
  • 提问者网友:焚苦与心
  • 2021-03-18 12:57
a%rowtype;
select col1 into a.col from table;编译通不过
最佳答案
  • 五星知识达人网友:十鸦
  • 2021-03-18 13:36
%rowtype是行变量定义,定义时必须指定行的结构。
例如:declare
a table1%rowtype; ----- 根据表table1指定行的结构

declare
cursor c1 is select col from table1;
a c1%rowtype; ------ 根据游标c1的select 语句指定行的结构
全部回答
  • 1楼网友:掌灯师
  • 2021-03-18 14:22
%type: 定义一个变量,其数据类型与已经定义的某个 数据变量的类型相同,或者与数据库表的某个列的数据类型 相同,这时可以使用%type。 使用%type 特性的优点在于: 1.所引用的数据库列的数据类型可以不必知道; 2. 所引用的数据库列的数据类型可以实时改变。 declare --定义一个记录类型 type emp_record is record( v_name employees.last_name%type, v_email employees.email%type, v_salary employees.salary%type, v_job_id employees.job_id%type); --声明自定义记录类型的变量 v_emp_record emp_record; begin --通过 select ... into ... 语句为变量赋值 select last_name, email, salary, job_id into v_emp_record from employees where employee_id = 101; -- 打印变量的值 dbms_output.put_line(v_emp_record.v_name || ', ' || v_emp_record.v_email || ', ' || v_emp_record.v_salary || ', ' || v_emp_record.v_job_id); end; 返回结果: kochhar, nkochhar, 17000, ad_vp pl/sql procedure successfully completed %rowtype: pl/sql 提供%rowtype 操作符, 返回一个记录类型, 其数据类型和数据库表的数据结构相一致。 使用%rowtype 特性的优点在于: 1.所引用的数据库中列的个数和数据类型可以不必知道; 2.所引用的数据库中列的个数和数据类型可以实时改变。 declare --声明一个记录类型的变量 v_emp_record employees%rowtype; begin --通过 select ... into ... 语句为变量赋值 select * into v_emp_record from employees where employee_id = 101; -- 打印变量的值 dbms_output.put_line(v_emp_record.last_name || ', ' || v_emp_record.email || ', ' || v_emp_record.salary || ', ' || v_emp_record.job_id || ', ' || v_emp_record.hire_date); end; 返回结果: kochhar, nkochhar, 17000, ad_vp, 21-9月 -89 pl/sql procedure successfully completed 记录类型: 记录类型是把 逻辑相关 的数据作为一个单元存储起来 ,称作 pl/sql record 的域(field) ,其作用是存放互不相同但逻辑相关的信息。 定义记录类型语法如下: type record_type is record ( field1 type1 [not null] [:= exp1 ], field2 type2 [not null] [:= exp2 ], . . . . . . fieldn typen [not null] [:= expn ] ) ; 提示 : 1) dbms_output.put_line 过程的功能类似于 java 中的 system.out.println() 直接将输出结果送到标准输出中 . 2) 在使用上述过程之前必须将 sql * plus 的环境参数 serveroutput 设置为 on, 否则将看不到输出结果 : set serveroutput on 可以用 select 语句对记录变量进行赋值,, 只要保证记录字段与查询结果列表中的字段相配即可。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯