我正在使用 Oracle 数据库 10g 快捷版 10.2.0.1.0 版 - 生产
我创建了一个对象类型:
SQL> create or replace type TestObject as Object (
2 id INTEGER,
3 name VARCHAR2(10)
4 );
5 /
然后我创建一个包含该类型对象的表:
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 类型 ... ¿值的数量不匹配在哪里?
最佳答案
对我来说这很有效:
declare
ta TestObject;
begin
select TestObject(t.id, t.name) into ta from TestTable t;
end;
/
关于sql - PL/SQL : SELECT INTO raises ORA-00947,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16732199/