任何人都可以幫助我解決這個錯誤,當我嘗試運行引數為 20211007 的 shell 腳本 test.sh 代碼如下:
#!/bin/sh
ODATE=${1}
file_source_sys="abc"
File_name="xyz"
file_deliver_time="20210218:12:56:76"
HOME_DIR="/var/tmp/Sneha"
source ~/env/INFORMATICA.env
source ${HOME_DIR}/db.properties
cd ${HOME_DIR}
cat <<EOD > temp.sql
INSERT INTO test VALUES
('${file_source_sys}','${File_name}','${file_deliver_time}','$ODATE');
commit;
quit
EOD
sql ${USER}/\"${PASS}\"@${DB_INSTANCE} @temp.sql
錯誤如下:
SQLcl:2021 年 11 月 6 日星期六 18:53:24 發布 18.3 版 著作權所有 (c) 1982, 2021,Oracle。著作權所有。
上次成功登錄時間:2021 年 11 月 6 日星期六 18:53:25 01:00
連接到:Oracle Database 19c 企業版 19.0.0.0.0 版 - 生產版 19.11.0.0.0
錯誤從行開始:1 檔案@/var/tmp/Sneha/temp.sql 在命令中 - INSERT INTO test VALUES ('abc','xyz','20210218:12:56:76','20211005') 錯誤在命令列:1 列:13 檔案@/var/tmp/Sneha/temp.sql 錯誤報告 - SQL 錯誤:ORA-00942:表或視圖不存在
提交完成。
與 Oracle Database 19c 企業版 19.0.0.0.0 版 - 生產版 19.11.0.0.0 斷開連接
注意我仔細檢查并確認表測驗是在資料庫中創建的。此外,我手動檢查了我將生成的插入陳述句插入到資料庫中的情況,它作業正常。但是通過 Shell 腳本它不會發生。
我還看到 temp.sql 檔案是用以下內容生成的:
插入測驗值 ('abc','xyz','20210218:12:56:76','20211005');
犯罪;
退出
我不確定代碼中哪里出錯了,因為我可以看到腳本成功連接到資料庫,并且也正確地進行了提交和斷開連接。
非常感謝您的幫助。非常感謝
uj5u.com熱心網友回復:
你確定你連接到了正確的資料庫,它說表“test”不存在,嘗試做:
INSERT INTO DB_NAME.test VALUES (...);
uj5u.com熱心網友回復:
我正在連接到一個模擬資料庫,因此出現了這個錯誤,實際模式和模擬模式非常相似,以至于我在連接到實際模式時錯過了主機名中的一個字符。非常感謝您的建議。:)
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/353231.html
