0

我在我的数据库模式中定义了以下 VARRAY 类型:

create or replace type STRING_VECTOR is varray(10) of varchar2(50);

我也有以下员工数据库表

first name| last name| salary
'John'    | 'Doe'    | 10.00

请注意,salary 列是 NUMBER(38,14)。

我想做的是添加我的 STRING_VECTOR 类型的第四列。我想用每个记录的字符串值填充我的字符串向量,如下所示:

first name| last name| salary| data
'John'    | 'Doe'    | 10.00 | ['John', 'Doe', '10.00']

有人可以给我一些关于是否可以编写 PL/SQL 来实现这一点的指示吗?

4

1 回答 1

1

这一点都不难,看一下:

CREATE TABLE my_emp_test (
  first_name VARCHAR2(20),
  last_name VARCHAR2(20),
  salary NUMBER(38, 14)
);

INSERT INTO my_emp_test VALUES ('John', 'Doe', 10.00);

COMMIT;

CREATE OR REPLACE TYPE string_vector IS VARRAY(10) OF VARCHAR2(50);

ALTER TABLE my_emp_test ADD data string_vector;

UPDATE my_emp_test
  SET data = string_vector(first_name, last_name, TO_CHAR(salary))
;

COMMIT;

SELECT * FROM my_emp_test;
FIRST_NAME LAST_NAME 工资数据                               
-------------------- -------- ---------- ----------------------------------
约翰·多伊 10 HR.STRING_VECTOR('John','Doe','10')

您写道您想要 PL/SQL,但正如您所见,它可以在纯 SQL 中完成,这对您有用吗?

于 2013-10-30T20:57:09.313 回答