insert into ... values (v.c1,v.c2,.....);

解决方案 »

  1.   

    jlandzpa(ORA-00600)的做法应该没问题
      

  2.   

    我觉得不应该在一个行变量中再取出值来存入数据库,而应该把行变量作为一个参数,请问该如何作?jiezhi老兄提到用forall,究竟如何使用?最好给个例子
      

  3.   

    forall没有这个功能.DECLARE
       TYPE NumList IS VARRAY(15) OF NUMBER;
       depts NumList := NumList();
    BEGIN
       -- fill varray here
       ...
       FORALL j IN 6..10  -- bulk-bind middle third of varray
          UPDATE emp SET sal = sal * 1.10 WHERE deptno = depts(j);
    END;
      

  4.   

    我想实现这样的功能:
    create table temp(name varchar2(10),sal number(10));
    create tem(name varchar2(8),...,sal number(6));
    declare
    d temp%rowtype;
    begin
    select name,sal into d.name,d.sal from tem;
    insert into tem values (d);
    end;
    代码可能有问题,但思路就是这样的,因为需要检索的列数不是只有两列,而建立一些参数存放再转的话,就负责多了,那样同时对insert语句的调试又增加了不少工作量。所以,如果能够实现这样的功能的话,我们的目的就达到了
      

  5.   

    两个表的记录长度等有出入,所以,不能直接用select语句插入,而且有一些字段还需要添加一些必要的信息,比如操作人...,也就是要在插入前做。现在就是那条插入语句该怎么写了?
      

  6.   

    create table temp(name varchar2(10),sal number(10));
    create tem(name varchar2(8),...,sal number(6));
    declare
    d temp%rowtype;
    begin
    select name,sal , , , , , , into d from tem;
    insert into tem values (d.name,d.sal);
    end;通过
      

  7.   

    insert 语句不能指定为行变量吗?这样就不需要一个一个成员的列出来,而如:
    insert into tem values (d),直接赋值行变量