暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Oracle Shell脚本和SQL加载程序

askTom 2017-07-25
181

问题描述

嗨,

我们通过从shell脚本调用sql loader来加载数据。在这里,我们得到以下加载数据的问题
1.并非所有绑定变量绑定
2.数据超过最大长度
这是示例控制文件
-----
加载数据
文件 “$ 文件”
追加
进入表 “斯科特。EMP'
由 “|” 终止的字段
尾随NULLCOLS
(
“名称” “修剪 (: 名称)”,
"描述" "修剪 (: 描述)"
)

使用上述控制文件,我们得到错误 “不是所有绑定变量绑定”。但是当我们通过提供数据文件名从命令提示符运行sql loder (使用sqlldr) 时,数据加载成功。

因此,我们删除了 “控制文件”,然后再次运行shell脚本,然后成功加载了数据。
---
加载数据
文件 “$ 文件”
追加
进入表 “斯科特。EMP'
由 “|” 终止的字段
尾随NULLCOLS
(
名称 “修剪 (: 名称)”,
描述 “修剪 (: 描述)”
)
同样,有时我们会收到 “数据超过最大长度” 错误,但是当我们通过命令提示符 (使用sqlldr命令和相同的控制文件) 运行sql loader时,我们不会遇到此问题。
所以我的问题是,
当我们从shell脚本调用它时,Sql Loader是否会更改其功能?

专家解答

在列名周围加上引号意味着您要完全保留大小写,因此您需要在查询等中保留大小写

SQL> create table t1 ( col int );

Table created.

SQL> create table t2 ( "col" int );

Table created.

SQL> desc t1
 Name                                                                    Null?    Type
 ----------------------------------------------------------------------- -------- ------------
 COL                                                                              NUMBER(38)

SQL> desc t2
 Name                                                                    Null?    Type
 ----------------------------------------------------------------------- -------- ------------
 col                                                                              NUMBER(38)

SQL> select col from t1;

no rows selected

SQL> select COL from t1;

no rows selected

SQL> select col from t2;
select col from t2
       *
ERROR at line 1:
ORA-00904: "COL": invalid identifier


SQL> select "col" from t2;

no rows selected




「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论