BEGIN
    SELECT COUNT(*) INTO v_count FROM EMP_dept
     WHERE deptno = p_deptno;
    IF v_count > 0
    THEN
       --raise_application_error(-20000,'duplicate name');
       RAISE e_duplication_dept;
    ELSE
        INSERT INTO emp_dept(deptno,deptname,loc) VALUES( p_deptno,p_dname,p_loc)
        ORDER BY emp_dept.deptno;

         
    END IF;
     COMMIT;

解决方案 »

  1.   

    创建的是过程,Compilation errors for PROCEDURE CSTMCBA_IREPORTSOFT.NEWDEPTError: PL/SQL: ORA-00933: SQL 命令未正确结束
    Line: 21
    Text: ORDER BY emp_dept.deptno;Error: PL/SQL: SQL Statement ignored
    Line: 20
    Text: INSERT INTO emp_dept(deptno,deptname,loc) VALUES( p_deptno,p_dname,p_loc)
      

  2.   

    DEPTNO DEPTNAME             LOC
    ------ --------             ---这个是表结构
      

  3.   

    insert后面写个order by干嘛?去掉ORDER BY emp_dept.deptno,哪有这种语法的
      

  4.   

    同意楼上
    ORDER BY emp_dept.deptno
      

  5.   


    我想按照deptno大小顺序插入,不想插到最后一排,应该怎么办
      

  6.   


    我想按照deptno大小顺序插入,不想插到最后一排,应该怎么办这可以做到吗???
      

  7.   

    那你得 values里面的值 就得 嵌套子查询啊
      

  8.   

    堆表的插入是无序的,是由块上的空间来决定的
    你想插入有序的话,可以考虑用IOT
      

  9.   


    给您了30分,再请问您一下,表的数据结构式什么形式啊,链表吗?
    表数据多数都是以堆的方式存储的,这样可以节省空间;访问数据时主要依靠索引或表的伪列ROWID来访问的。
    索引的叶子节点采用的是双向链表的数据结构来构建的,这样能更加快速的做查询