Lv_FileHandle :=UTL_FILE.FOPEN(Lv_InitOra_Location,Lv_InitOra_Name,'W');
其中的Lv_InitOra_Location是文件的目录,Lv_InitOra_Name是文件名,就是initORACLE_sid.ora
其他的一些说明:
在运行gen_dsql_*.sql脚本之前,你需要运行Oracle提供的脚本utlfile.sql,它在你的Oracle软件根目录下的/rdbms/admin目录中.utlfile.sql脚本创建UTL_FILE包,这个包使你可以从一个PL/SQL进程中访问操作系统平面文件.要和utlfile.sql脚本联合使用,你必须修改你的init.ora以包含utl_file_dir参数,这个参数指向操作系统目录或UTL_FILE包能够写入的目录.最后,为了确保数据库中所有的表空间在该脚本中被捕获到,你必须运行前一部分讨论的适当的gen_tbs_*.sql脚本......
是不是"这个参数指向操作系统目录或UTL_FILE包能够写入的目录"有什么,我试过了,不行,
还是有其他什么问题,如果需要这些脚本,我下面加上,太长了
12 个解决方案
#1
不明白你的意思,initSID.ora应该是在建库以前手工编辑的,和utl_file包不可能有一点点关系,库都没有从哪里去运行这个包啊?
#2
看错题目了,抱歉!
其实建库用操作系统脚本更方便,但你的问题其实是utl_file不能正常使用,在initSID.ora中加入该文件所在的地址,保证当前用户对该地址下的文件有读写的权利,就应该没有问题了。
其实建库用操作系统脚本更方便,但你的问题其实是utl_file不能正常使用,在initSID.ora中加入该文件所在的地址,保证当前用户对该地址下的文件有读写的权利,就应该没有问题了。
#3
是<<Oracle9i PL/SQL脚本工具>>书里有一段PL/SQL代码,是用来根据一个数据库生成一个它的空备份,连接到这个数据库然后执行这断代码,输入一个路径,这断代码就生成一个initSID.ora和一段sql,好像是可以用来生成的,这断代码执行到
Lv_FileHandle :=UTL_FILE.FOPEN(Lv_InitOra_Location,Lv_InitOra_Name,'W');
好像就不行了,可能是不能打开文件?
我想用这断代码的目的是:做了一个应用,需要一个安装程序,不过人家要求安装的时候直接就把库\表的给创建了,不需要再去oracle里去手工创建,我想再安装程序里用sqlplus来执行一段script来实现,不知道可不可以,还有什么好的办法呢?
Lv_FileHandle :=UTL_FILE.FOPEN(Lv_InitOra_Location,Lv_InitOra_Name,'W');
好像就不行了,可能是不能打开文件?
我想用这断代码的目的是:做了一个应用,需要一个安装程序,不过人家要求安装的时候直接就把库\表的给创建了,不需要再去oracle里去手工创建,我想再安装程序里用sqlplus来执行一段script来实现,不知道可不可以,还有什么好的办法呢?
#4
看错题目了,抱歉!
其实建库用操作系统脚本更方便,但你的问题其实是utl_file不能正常使用,在initSID.ora中加入该文件所在的地址,保证当前用户对该地址下的文件有读写的权利,就应该没有问题了。
其实建库用操作系统脚本更方便,但你的问题其实是utl_file不能正常使用,在initSID.ora中加入该文件所在的地址,保证当前用户对该地址下的文件有读写的权利,就应该没有问题了。
#5
在库的初始化文件中,添加“utl_file_dir”这个初始化参数,它的值为有效的路径名,否则 UTL_FILE 包不能执行。
“utl_file_dir = * ”,设置可以访问如何路径。
“utl_file_dir = * ”,设置可以访问如何路径。
#6
“utl_file_dir = * ”,设置可以访问任何路径。
#7
我已经再utl_file_dir 里加了,可是不行,是再执行那个文件操作是出的错,
KingSunSha(弱水三千)大哥,怎么用操作系统脚本建库
KingSunSha(弱水三千)大哥,怎么用操作系统脚本建库
#8
改了initSID.ora之后有没有重新启动数据库?出错代码是什么?
#9
改了initSID.ora之后有没有重新启动数据库?出错代码是什么?
#10
重启了,看不到错误代码,我在那段程序里加了2句消息输出,文件操作之前一个,之后一个,只能看到前一个,后一个没有,没有显示出错代码,怎么看阿
#11
没有错误代码?那就奇怪了
pl/sql块中是不是有exception控制?会不会是错误代码被exception块中的处理忽略掉了?
pl/sql块中是不是有exception控制?会不会是错误代码被exception块中的处理忽略掉了?
#12
我再看看了,在utl_file_dir参数中加入的路径没有什么特别的要求吧,我是随便指定了个我磁盘上的一个路径
#1
不明白你的意思,initSID.ora应该是在建库以前手工编辑的,和utl_file包不可能有一点点关系,库都没有从哪里去运行这个包啊?
#2
看错题目了,抱歉!
其实建库用操作系统脚本更方便,但你的问题其实是utl_file不能正常使用,在initSID.ora中加入该文件所在的地址,保证当前用户对该地址下的文件有读写的权利,就应该没有问题了。
其实建库用操作系统脚本更方便,但你的问题其实是utl_file不能正常使用,在initSID.ora中加入该文件所在的地址,保证当前用户对该地址下的文件有读写的权利,就应该没有问题了。
#3
是<<Oracle9i PL/SQL脚本工具>>书里有一段PL/SQL代码,是用来根据一个数据库生成一个它的空备份,连接到这个数据库然后执行这断代码,输入一个路径,这断代码就生成一个initSID.ora和一段sql,好像是可以用来生成的,这断代码执行到
Lv_FileHandle :=UTL_FILE.FOPEN(Lv_InitOra_Location,Lv_InitOra_Name,'W');
好像就不行了,可能是不能打开文件?
我想用这断代码的目的是:做了一个应用,需要一个安装程序,不过人家要求安装的时候直接就把库\表的给创建了,不需要再去oracle里去手工创建,我想再安装程序里用sqlplus来执行一段script来实现,不知道可不可以,还有什么好的办法呢?
Lv_FileHandle :=UTL_FILE.FOPEN(Lv_InitOra_Location,Lv_InitOra_Name,'W');
好像就不行了,可能是不能打开文件?
我想用这断代码的目的是:做了一个应用,需要一个安装程序,不过人家要求安装的时候直接就把库\表的给创建了,不需要再去oracle里去手工创建,我想再安装程序里用sqlplus来执行一段script来实现,不知道可不可以,还有什么好的办法呢?
#4
看错题目了,抱歉!
其实建库用操作系统脚本更方便,但你的问题其实是utl_file不能正常使用,在initSID.ora中加入该文件所在的地址,保证当前用户对该地址下的文件有读写的权利,就应该没有问题了。
其实建库用操作系统脚本更方便,但你的问题其实是utl_file不能正常使用,在initSID.ora中加入该文件所在的地址,保证当前用户对该地址下的文件有读写的权利,就应该没有问题了。
#5
在库的初始化文件中,添加“utl_file_dir”这个初始化参数,它的值为有效的路径名,否则 UTL_FILE 包不能执行。
“utl_file_dir = * ”,设置可以访问如何路径。
“utl_file_dir = * ”,设置可以访问如何路径。
#6
“utl_file_dir = * ”,设置可以访问任何路径。
#7
我已经再utl_file_dir 里加了,可是不行,是再执行那个文件操作是出的错,
KingSunSha(弱水三千)大哥,怎么用操作系统脚本建库
KingSunSha(弱水三千)大哥,怎么用操作系统脚本建库
#8
改了initSID.ora之后有没有重新启动数据库?出错代码是什么?
#9
改了initSID.ora之后有没有重新启动数据库?出错代码是什么?
#10
重启了,看不到错误代码,我在那段程序里加了2句消息输出,文件操作之前一个,之后一个,只能看到前一个,后一个没有,没有显示出错代码,怎么看阿
#11
没有错误代码?那就奇怪了
pl/sql块中是不是有exception控制?会不会是错误代码被exception块中的处理忽略掉了?
pl/sql块中是不是有exception控制?会不会是错误代码被exception块中的处理忽略掉了?
#12
我再看看了,在utl_file_dir参数中加入的路径没有什么特别的要求吧,我是随便指定了个我磁盘上的一个路径