linux下如何将写好的存储过程(txt格式的文件)导入oracle?

树先生 2010-05-20 03:17:13
如题,数据库装在远程服务器上。
我百度了一下 说是 sqlplus admin/pwd @***.sql
但是我这样操作后没反应 怎么回事呢 请教!
...全文
319 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
icecard 2010-05-22
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 xxrlily 的回复:]

斜杠啥作用啊。。。
我是菜鸟呵呵
[/Quote]
立即执行那你个包
树先生 2010-05-20
  • 打赏
  • 举报
回复
斜杠啥作用啊。。。
我是菜鸟呵呵
icecard 2010-05-20
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 xxrlily 的回复:]

5楼的方法我试过了 还是不行啊
现象是

xxr@SERVER:~/datafile> sqlplus test/test @BF_INDEX.sql
…………
Connected to:
Oracle Database 10g Enterprise Edition Release 10.1.0.2.0 - Production
With the Partitioning, OLAP and Data Mining options

60

[/Quote]

你也看到了,执行结果最后有个60,说明你的脚本里存储过程到了60行。这所明你BF_INDEX.sql脚本里存储过程后面少了一个斜杠“/”
geniusqiao 2010-05-20
  • 打赏
  • 举报
回复
你把输入的sql文件改一下,
$cat tt.sql
select 1 from dual;
quit;

再执行sqlplus看下,如果能成功,那证明sql文件必须是sql语句才行
而不能是存储过程或者包体的定义
树先生 2010-05-20
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 geniusqiao 的回复:]
另外你说的 导入是什么意思??就是执行一次的意思吧.
[/Quote]
有两个文件BF_INDEX.sql BF_PROC.sql
BF_INDEX.sql 里是对包体的定义 (在pl/sql里就是packages)


CREATE OR REPLACE PACKAGE BF_DatabaseProc AS
procedure getfilminfo(p_id in varchar2, p_cur out MY_TYPE_CURSOR ,p_error out NUMBER);
procedure getfilmlist(p_type in NUMBER, p_cur out MY_TYPE_CURSOR ,p_num out NUMBER,p_error out NUMBER);
......
END;


BF_PROC.sql 里是包体的实现 (在pl/sql里就是package bodies)

CREATE OR REPLACE PACKAGE BODY BF_DatabaseProc
AS
procedure getfilminfo(p_id in varchar2, p_cur out MY_TYPE_CURSOR ,p_error out NUMBER)
...
END;

树先生 2010-05-20
  • 打赏
  • 举报
回复
5楼的方法我试过了 还是不行啊
现象是

xxr@SERVER:~/datafile>
xxr@SERVER:~/datafile> sqlplus test/test @BF_INDEX.sql

SQL*Plus: Release 10.1.0.2.0 - Production on Thu May 20 20:40:35 2010

Copyright (c) 1982, 2004, Oracle. All rights reserved.


Connected to:
Oracle Database 10g Enterprise Edition Release 10.1.0.2.0 - Production
With the Partitioning, OLAP and Data Mining options

60
树先生 2010-05-20
  • 打赏
  • 举报
回复
用同样的方法导入我本机的数据库是可以的
ojuju10 2010-05-20
  • 打赏
  • 举报
回复
先sqlplu登录进去后

再@路径/**.sql
树先生 2010-05-20
  • 打赏
  • 举报
回复
host是数据库名吧 加了也不行啊
geniusqiao 2010-05-20
  • 打赏
  • 举报
回复
另外你说的 导入是什么意思??就是执行一次的意思吧.
geniusqiao 2010-05-20
  • 打赏
  • 举报
回复
命令有点问题吧。
sqlplus username/pwd@host @test.sql
树先生 2010-05-20
  • 打赏
  • 举报
回复
补充一下,需要导入的是package body和package

17,378

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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