我正在使用Oracle数据库10g快捷版10.2.0.1.0版 - 生产
我创建了一个对象类型:
SQL> create or replace type TestObject as Object (
2 id INTEGER,
3 name VARCHAR2(10)
4 );
5 /
然后我创建一个表包含该类型的obint:
SQL> CREATE TABLE TestTable of TestTable;
我用一些数据填充表格:
SQL> INSERT INTO TestTable VALUES (10, 'John');
现在,如果我想在PL / SQL中执行SELECT:
SQL> declare
2 aTest TestObject;
3 begin
4 select * into aTest from TestTable;
5 end;
6 /
我收到错误ORA-00947(值不够):
select * into aTest from TestTable;
*
ERROR en línea 4:
ORA-06550: línea 4, columna 21:
PL/SQL: ORA-00947: no hay suficientes valores
ORA-06550: línea 4, columna 1:
PL/SQL: SQL Statement ignored
但是TestTable包含TestObject类型的对象,而变量aTest也是TestObject类型......¿值的数量不匹配在哪里?
答案 0 :(得分:2)
对我来说这很有效:
declare
ta TestObject;
begin
select TestObject(t.id, t.name) into ta from TestTable t;
end;
/
答案 1 :(得分:1)
试试这个..
select TestObject(id,name) from TestTable
/