zig*_*ggy 7 sql oracle plsql oracle10g
在PL/SQL中,a varray可以在创建时初始化为:
TYPE colour_tab IS VARRAY(3) OF VARCHAR2(20);
french_colours colour_tab := colour_tab('RED','WHITE','BLUE');
Run Code Online (Sandbox Code Playgroud)
PL/SQL记录类型是否有等效的初始化方法?
type location_record_type is record (
street_address varchar2(40),
postal_code varchar2(12),
city varchar2(30),
state_province varchar2(25),
country_id char(2) not null := 'US'
);
Run Code Online (Sandbox Code Playgroud)
使用函数作为一种"构造函数"函数(查看函数f()):
DECLARE
TYPE ty_emp IS RECORD(
id INTEGER,
name VARCHAR(30),
deptcode VARCHAR(10)
);
TYPE ty_tbl_emp IS TABLE OF ty_emp;
tbl_emp ty_tbl_emp;
FUNCTION f ( -- <==============
id INTEGER,
name VARCHAR,
deptcode VARCHAR) RETURN ty_emp IS
e ty_emp;
BEGIN
e.id := id;
e.name := name;
e.deptcode := deptcode;
RETURN e;
END f;
BEGIN
tbl_emp := ty_tbl_emp(
f(1, 'Johnson', 'SALES'),
f(2, 'Peterson', 'ADMIN'));
Dbms_Output.put_line(tbl_emp(2).name);
END;
Run Code Online (Sandbox Code Playgroud)
Oracle 18c 允许使用限定表达式进行记录初始化:
declare
type location_record_type is record (
street_address varchar2(40),
postal_code varchar2(12),
city varchar2(30),
state_province varchar2(25),
country_id char(2) not null := 'US'
);
myvar location_record_type;
myvar2 location_record_type := location_record_type(street_address => 'my street'
,postal_code => 'my code'
,city => 'my city'
,state_province => 'my state'
,country_id => 'GB'
);
begin
dbms_output.put_line(myvar.country_id);
dbms_output.put_line(myvar2.city);
end;
/
Run Code Online (Sandbox Code Playgroud)
上面的输出是...
US
my city
Run Code Online (Sandbox Code Playgroud)
您可以在此处在 Oracle Live SQL 中运行上述示例代码。(不幸的是,该网站需要登录。)
| 归档时间: |
|
| 查看次数: |
13309 次 |
| 最近记录: |