用PL/SQL Developer会很方便的
tool -〉tableexport -〉SQL插入
可以生成你需要的sql语句。
例如:
prompt PL/SQL Developer import file
prompt Created on 2004年10月14日 by CHIN-K
set feedback off
set define off
prompt Creating TREE...
create table TREE
(
  ID       NUMBER not null,
  PID      NUMBER,
  NAME     VARCHAR2(100),
  ORDERNUM NUMBER
)
;
alter table TREE
  add constraint TREE_ID primary key (ID);
alter table TREE
  add constraint TREE_PID foreign key (PID)
  references TREE (ID) on delete cascade;prompt Disabling triggers for TREE...
alter table TREE disable all triggers;
prompt Disabling foreign key constraints for TREE...
alter table TREE disable constraint TREE_PID;
prompt Loading TREE...
insert into TREE (ID, PID, NAME, ORDERNUM)
values (0, 0, 'root', null);
insert into TREE (ID, PID, NAME, ORDERNUM)
values (1, 0, 'a', 1);
insert into TREE (ID, PID, NAME, ORDERNUM)
values (3, 0, 'c', 2);
insert into TREE (ID, PID, NAME, ORDERNUM)
values (4, 1, 'aa', 3);
insert into TREE (ID, PID, NAME, ORDERNUM)
values (5, 1, 'ab', 4);
insert into TREE (ID, PID, NAME, ORDERNUM)
values (6, 1, 'ac', 1);
insert into TREE (ID, PID, NAME, ORDERNUM)
values (8, 3, 'ca', 3);
insert into TREE (ID, PID, NAME, ORDERNUM)
values (9, 4, 'aaa', 4);
insert into TREE (ID, PID, NAME, ORDERNUM)
values (10, 4, 'aab', 5);
insert into TREE (ID, PID, NAME, ORDERNUM)
values (11, 4, 'aac', 3);
insert into TREE (ID, PID, NAME, ORDERNUM)
values (12, 4, 'aad', 2);
insert into TREE (ID, PID, NAME, ORDERNUM)
values (13, 9, 'aaaa', 3);
insert into TREE (ID, PID, NAME, ORDERNUM)
values (14, 9, 'aaab', 2);
insert into TREE (ID, PID, NAME, ORDERNUM)
values (15, 9, 'aaac', 5);
commit;
prompt 14 records loaded
prompt Enabling foreign key constraints for TREE...
alter table TREE enable constraint TREE_PID;
prompt Enabling triggers for TREE...
alter table TREE enable all triggers;
set feedback on
set define on
prompt Done.

解决方案 »

  1.   

    PL/SQL Developer的方法很简单
      

  2.   

    问题是我要在程序里面实现呢。。
    麻烦大了。。vc里面怎么创建一个存储过程?
    ado->execute可以执行一个存储过程。
    还有办法通过脚本或其他方式创建表或存储过程不?
      

  3.   

    exp/imp
    可以导库,但因为最终的两个库布一样。
    而且不需要所有的表a
      

  4.   

    exp时可指定想要导出的具体表名
      

  5.   

    不大明白我的意思呢.
    这一切我要在程序实现的阿.
    不过shellexecute应该也行。怎么给exp传参呢。?
      

  6.   

    create table table1 as select * from table2 where 1=2; //新表table1结构与table2一致,但是新表中没有记录。
    alter table table1 .....//在新表上增加索引、主键等;
    insert into table1 as select .... from table2 where .....//将table2中的记录批量插入到新表table1中。
      

  7.   

    要alter的话这样还不如直接
    create table 的各个结构,主建呢。。
      

  8.   

    create table table1(col1 primary key,col2 not null ,col3,....) as select col01,col02,col03,....from table2 ;注意:在新表table1中,列名和后面的约束名之间不能有数据类型,因为数据类型必须与table2中各列的属性保持一致。两表的对应的列名可以不一致。
      

  9.   

    biliky,这样效果也基本一样的了没办法。
      

  10.   

    新的烦恼。。ado执行sql脚本怎么弄。。
      

  11.   

    vb中:
    Dim gconn As New ADODB.Connection
    Dim vSql As Stringgconn.ConnectionString = "..."
       vsql=....
    gconn.Execute vSql
      

  12.   

    zmgowin(隐者(龙祖宗)
    gconn.Execute是执行已经存在的过程,
    我要在ado创建一个过程阿。 bilily谢谢待会给分
      

  13.   

    gconn.execute可以执行sql,怎么会是只执行过程?
      

  14.   

    你不想这样就用COPY 表啊!!
      

  15.   

    command->CommandType = adCmdText;
    CString sqlStr =GetStringFromSQLFile(sqlfile);
    //CString ="CREATE OR REPLACE PROCEDURE ................"很多行。
            command->Execute(NULL,NULL,adCmdText是不行的
    Connection的也一样,它不能识别;号。
      

  16.   

    在哪下载免费的PL/SQL Developer呢?
    我现在用的要注册啊。
      

  17.   

    ....要写成程序阿所以不能pl/sql.........