PL/SQL:选择ORA-00947
我正在使用Oracle Database 10g Express Edition 10.2.0.1.0版-生产 我创建了一个对象类型:PL/SQL:选择ORA-00947,sql,oracle,plsql,Sql,Oracle,Plsql,我正在使用Oracle Database 10g Express Edition 10.2.0.1.0版-生产 我创建了一个对象类型: SQL> create or replace type TestObject as Object ( 2 id INTEGER, 3 name VARCHAR2(10) 4 ); 5 / 然后我创建了一个包含该类型的int对象的表: SQL> CREATE TABLE TestTable of TestTable; 我用一
SQL> create or replace type TestObject as Object (
2 id INTEGER,
3 name VARCHAR2(10)
4 );
5 /
然后我创建了一个包含该类型的int对象的表:
SQL> CREATE TABLE TestTable of TestTable;
我用一些数据填充表格:
SQL> INSERT INTO TestTable VALUES (10, 'John');
现在,如果我想在PL/SQL中执行选择:
SQL> declare
2 aTest TestObject;
3 begin
4 select * into aTest from TestTable;
5 end;
6 /
我得到错误ORA-00947(没有足够的值):
但是TestTable包含TestObject类型的对象,变量aTest也是TestObject类型的。。。?值的数量不匹配在哪里?试试这个
select TestObject(id,name) from TestTable
/
对我来说,这很有效:
declare
ta TestObject;
begin
select TestObject(t.id, t.name) into ta from TestTable t;
end;
/
declare
ta TestObject;
begin
select TestObject(t.id, t.name) into ta from TestTable t;
end;
/