oracle - PLSQL 中的变量
问题描述
我想获得在我的过程中定义的值,如下所述。
declare
city varchar2(50) := 'XYZ';
TYPE table_type is table of table_name%rowtype;
var table_type;
begin
select * bulk collect into var from table_name;
DBMS_OUTPUT.PUT_LINE(var(1).field); -- Output is City
我想要的输出
DBMS_OUTPUT.PUT_LINE(var(1).field); -- Output is XYZ
我怎样才能做到这一点?
解决方案
首先,您的代码不起作用。其次,如果要恢复变量,则不需要批量收集
例子
create table mytest ( c1 varchar2(50) ;
insert into mytest values ( 'XYZ' );
commit;
然后
SQL> set serveroutput on
declare
vcity mytest.c1%type := 'XYZ';
var mytest.c1%type;
begin
select c1 into var from mytest where c1=vcity;
DBMS_OUTPUT.PUT_LINE('vcity is '||vcity||' ');
DBMS_OUTPUT.PUT_LINE('var is '||var||' ');
end;
/SQL> 2 3 4 5 6 7 8 9
vcity is XYZ
var is XYZ
PL/SQL procedure successfully completed.
SQL>
- vcity只是一个使用列 c1 的类型定义的变量,但分配给一个常量,在本例中为 'XYZ'
- var是我用来恢复表中 c1 值的变量,无论该值是什么。
您根本不需要在这里批量收集。
推荐阅读
- flutter - 颤动中删除请求后如何更新屏幕?
- r - 轴覆盖图中的标签
- angular - 用户登录后如何设置令牌?
- windows - 在 Windows 10 上查找或编译最新的 GNU RCS (5.10)
- java - 在 Android Studio 中更新数据错误,但 API 有效
- regex - Oracle正则表达式匹配列值的多个部分
- php - 在 Laravel 中,如何为不同的客户名称制作多个仪表板?
- python - 将 2 个列表的公共元素存储为 0 和 1
- reactjs - 如何在 next.js 上正确实现 next/link 与 SSR
- python - 在 Python 中使用函数更改变量值