oracle之导入sql(大文件)

最近公司开始上手oracle数据库了,作为一个只会使用mysql的感到一丝窃喜,多会一些东西,以后的路也好走一些。废话不多说,开始填坑。
数据库要求,导入一个文件 如图:
在这里插入图片描述
sql.sql文件这折算下来150MB (158465/1024),本以为是一个小case。
打开oracle sql developer ,

1.直接点击导入 :

重点来了: 没有为sql类型注册的读进程
报错了,网上搜索没有找到较好的解决措施。

2.使用文本编辑器打开:

直接拷贝sql语句内容,放入sql developer里面去运行,发现内容多了 ,复制后粘贴没反应,额。。。。冷汗直流。。。

3.sql developer直接打开sql文件:

这样总可以了吧,额,直接来个outOfMemory 显示jvm的堆内存溢出。。。醉了。
在这里插入图片描述
详细错误:
java.io.IOException: exception loading H:\oracle_image\sql.sql
at oracle.ide.model.TextNode.openImpl(TextNode.java:549)
at oracle.ide.model.Node.open(Node.java:1045)
at oracle.ide.model.Node.open(Node.java:992)
at oracle.ide.model.Node.ensureOpen(Node.java:2417)
at oracle.ide.model.TextNode.acquireTextBuffer(TextNode.java:767)
at oracle.jdevimpl.history.HistoryViewer.setContext(HistoryViewer.java:972)
at com.oracle.jdeveloper.nbwindowsystem.editor.EditorState.createEditor(EditorState.java:169)
at com.oracle.jdeveloper.nbwindowsystem.editor.EditorState.getOrCreateEditor(EditorState.java:103)
at com.oracle.jdeveloper.nbwindowsystem.editor.SplitPaneState.canSetEditorStatePos(SplitPaneState.java:257)
at com.oracle.jdeveloper.nbwindowsystem.editor.SplitPaneState.setCurrentEditorStatePos(SplitPaneState.java:220)
at com.oracle.jdeveloper.nbwindowsystem.editor.TabGroupState.createSplitPaneState(TabGroupState.java:110)
at com.oracle.jdeveloper.nbwindowsystem.editor.TabGroup.addTabGroupState(TabGroup.java:116)
at com.oracle.jdeveloper.nbwindowsystem.NbEditorManager.createEditor(NbEditorManager.java:546)
at com.oracle.jdeveloper.nbwindowsystem.NbEditorManager.createEditor(NbEditorManager.java:523)
at com.oracle.jdeveloper.nbwindowsystem.NbEditorManager.openEditor(NbEditorManager.java:391)
at oracle.ide.cmd.OpenCommand.openWithNoProject(OpenCommand.java:337)
at oracle.ide.cmd.OpenCommand.access$100(OpenCommand.java:62)
at oracle.ide.cmd.OpenCommand$1.run(OpenCommand.java:266)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:311)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:756)
at java.awt.EventQueue.access$500(EventQueue.java:97)
at java.awt.EventQueue$3.run(EventQueue.java:709)
at java.awt.EventQueue 3. r u n ( E v e n t Q u e u e . j a v a : 703 ) a t j a v a . s e c u r i t y . A c c e s s C o n t r o l l e r . d o P r i v i l e g e d ( N a t i v e M e t h o d ) a t j a v a . s e c u r i t y . P r o t e c t i o n D o m a i n 3.run(EventQueue.java:703) at java.security.AccessController.doPrivileged(Native Method) at java.security.ProtectionDomain JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:80)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:726)
at oracle.javatools.internal.ui.EventQueueWrapper._dispatchEvent(EventQueueWrapper.java:169)
at oracle.javatools.internal.ui.EventQueueWrapper.dispatchEvent(EventQueueWrapper.java:151)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)
Caused by: java.lang.OutOfMemoryError: Java heap space
at oracle.javatools.buffer.VectorBuffers.consolidateBuffers(VectorBuffers.java:131)
at oracle.javatools.buffer.VectorBuffers.getAllBuffers(VectorBuffers.java:156)
at oracle.javatools.buffer.EOLNormalizer.processFinish(EOLNormalizer.java:190)
at oracle.javatools.buffer.EOLNormalizer$ReaderNormalizer.normalizeData(EOLNormalizer.java:312)
at oracle.javatools.buffer.AbstractTextBuffer.read(AbstractTextBuffer.java:1406)
at oracle.javatools.buffer.AbstractTextBuffer.read(AbstractTextBuffer.java:1350)
at oracle.javatools.buffer.TextBufferDecorator.read(TextBufferDecorator.java:468)
at oracle.ide.model.TextNode.loadTextBuffer(TextNode.java:307)
at oracle.ide.model.TextNode.openImpl(TextNode.java:537)
at oracle.ide.model.Node.open(Node.java:1045)
at oracle.ide.model.Node.open(Node.java:992)
at oracle.ide.model.Node.ensureOpen(Node.java:2417)
at oracle.ide.model.TextNode.acquireTextBuffer(TextNode.java:767)
at oracle.jdevimpl.history.HistoryViewer.setContext(HistoryViewer.java:972)
at com.oracle.jdeveloper.nbwindowsystem.editor.EditorState.createEditor(EditorState.java:169)
at com.oracle.jdeveloper.nbwindowsystem.editor.EditorState.getOrCreateEditor(EditorState.java:103)
at com.oracle.jdeveloper.nbwindowsystem.editor.SplitPaneState.canSetEditorStatePos(SplitPaneState.java:257)
at com.oracle.jdeveloper.nbwindowsystem.editor.SplitPaneState.setCurrentEditorStatePos(SplitPaneState.java:220)
at com.oracle.jdeveloper.nbwindowsystem.editor.TabGroupState.createSplitPaneState(TabGroupState.java:110)
at com.oracle.jdeveloper.nbwindowsystem.editor.TabGroup.addTabGroupState(TabGroup.java:116)
at com.oracle.jdeveloper.nbwindowsystem.NbEditorManager.createEditor(NbEditorManager.java:546)
at com.oracle.jdeveloper.nbwindowsystem.NbEditorManager.createEditor(NbEditorManager.java:523)
at com.oracle.jdeveloper.nbwindowsystem.NbEditorManager.openEditor(NbEditorManager.java:391)
at oracle.ide.cmd.OpenCommand.openWithNoProject(OpenCommand.java:337)
at oracle.ide.cmd.OpenCommand.access$100(OpenCommand.java:62)
at oracle.ide.cmd.OpenCommand$1.run(OpenCommand.java:266)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:311)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:756)
at java.awt.EventQueue.access$500(EventQueue.java:97)
at java.awt.EventQueue$3.run(EventQueue.java:709)
at java.awt.EventQueue$3.run(EventQueue.java:703)
at java.security.AccessController.doPrivileged(Native Method)

解决方案:

还好有一个命令行导入的 没有这种限制,这个直接使用命令行与oracle交互了。这个命令行交互其实也是一种另类的客户端。

1)windows这边直接进入cmd模式,额linux直接就行了。我这边因为是虚拟机安装的oracle,所以直接把文件拷贝到虚拟机里面去了,在虚拟机里面执行,进入虚拟机(windows xp)里面。(执行cmd)
2)敲命令 sqlplus 用户名/密码@ip:端口/数据库实例 先使用命令行连接上再说吧,
如: sqlplus system/[email protected]:1521/oraclelates
3) 然后进入命令行的客户端模式了
显示 SQL>
接着输入: SQL> @E:/sql.sql;
输入的是这种格式: @全路径/sql文件
注: sql文件里面最后以一个提交 commit;
然后脚本文件就跑起来了,哈哈哈 鹅鹅鹅 成功了!so easy!
开始入坑oracle,接着就要熟悉其他相关的了。

发布了7 篇原创文章 · 获赞 1 · 访问量 84

猜你喜欢

转载自blog.csdn.net/qq_34149223/article/details/105490292