在Delphi中怎样使用SQL*PLUS中的Copy命令

luhongjun 2010-07-29 03:35:06
SQL*PLUS中的copy是一功能非常强大的数据复制命令.它虽然可以在sql>提示符下使用,但不属于SQL语句,因此,Delphi中的的ADOQUERY组件不能直接使用.要想使用这个copy命令,在Delphi中应该怎样完成.

copy的命令格式:
COPY {FROM database | TO database | FROM database TO database} {APPEND|CREATE|INSERT|REPLACE} destination_table [(column, column, column, ...)]
USING query

...全文
76 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
kye_jufei 2010-07-30
  • 打赏
  • 举报
回复
如果說:
set Copycommit 1
Set arraySize 100
Copy from username/password@dbname-
to username1/pw1@dbname1-
append Tablename-
Using Select * from Tablename1

在sql/plus里前几次执行时报错:

ORA-01458: 内部变量字符串长度非法。

那麼可能的原因就是:


ORA-01458 invalid length inside variable character string

Cause An attempt was made to bind or define a variable character string with a buffer length less than the two-byte minimum requirement.
Action Increase the buffer size or use a different type.


解決方法:

增加初始化参数db_block_buffers(在init.ora文件里面),改完后,重新启动数据库...


kye_jufei 2010-07-30
  • 打赏
  • 举报
回复
這樣試試...

copy from username/password@dbname
to username1/pw1@dbname1
append(create/insert/replace) tablename(col1,col2...)
using select....from ...;
append:添加到表上,如果tablename表不存在,则建立此表
create:如果tablename表存在,则出错
insert:添加到表中,如果tablename表不存在,则出错
replace:替换表中数据,如果tablename表不存在,则建立此表...
kye_jufei 2010-07-30
  • 打赏
  • 举报
回复
方法一:
建議先建立一個DBLINK,然後再寫存儲過程直接調用...

1)把你要做的工作写成脚本,甚至你可以在程序中动态生成你的脚本,假定保存为c:\a.sql
2)在Delphi中用ShellExecute执行该脚本,参数为sqlplus internal/oracle@server @c:\a.sql

2,496

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 数据库相关
社区管理员
  • 数据库相关社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧