簡體   English   中英

無法從Sqoop調用Oracle存儲過程

[英]Unable to Call Oracle Stored Procedure from Sqoop

我想從Sqoop調用Oracle存儲過程,但出現錯誤。 我必須調用存儲過程的函數,並且需要傳遞參數。

$: sqoop import --connect jdbc:oracle:thin:@localhost:1512/db --username userA --password password --call Oracle_Schema.pkg_table_maintenance.sf_drop_index('TBL_A_%','Group_id')

-bash: syntax error near unexpected token `('

$: sqoop import --connect jdbc:oracle:thin:@localhost:1512/db --username userA --password password --call "Oracle_Schema.pkg_table_maintenance.sf_drop_index('TBL_A_%','Group_id')"

Warning: /opt/cloudera/parcels/CDH-5.4.7-1.cdh5.4.7.p1246.1021/bin/../lib/sqoop/../accumulo does not exist! Accumulo imports will fail.
Please set $ACCUMULO_HOME to the root of your Accumulo installation.
17/11/27 10:31:31 INFO sqoop.Sqoop: Running Sqoop version: 1.4.5-cdh5.4.7
17/11/27 10:31:32 WARN tool.BaseSqoopTool: Setting your password on the command-line is insecure. Consider using -P instead.
17/11/27 10:31:32 ERROR tool.BaseSqoopTool: Error parsing arguments for import:
17/11/27 10:31:32 ERROR tool.BaseSqoopTool: Unrecognized argument: --call
17/11/27 10:31:32 ERROR tool.BaseSqoopTool: Unrecognized argument: Oracle_Schema.pkg_table_maintenance.sf_drop_index('TBL_A_%','Group_id')

有人可以幫忙嗎?

Sqoop允許您僅在導出時調用sql過程,而不在導入時調用。

如果您的存儲過程選擇了某種無法通過sqoop-import導入的選擇,則sqoop導入將沒有這種靈活性。

但是,如果您的存儲過程正在執行某種清理操作,則可以使用以下sqoop eval實用程序

sqoop eval --connect jdbc:oracle:thin:@localhost:1512/db --username userA --password password --query "EXECUTE Oracle_Schema.pkg_table_maintenance.sf_drop_index('TBL_A_%','Group_id')"

--query“將執行查詢,就像您在oracle數據庫中運行一樣,您可以使用與從oracle客戶端應用程序/命令行中使用的相同的SQL語法”

您可以使用Sql * plus方法在Sqoop中執行存儲過程,以執行存儲過程: BEGIN STORED_PROCEDURE; END; BEGIN STORED_PROCEDURE; END;

sqoop eval -Dmapred.job.queue.name=root.test.test-mis \
 --connect jdbc:oracle:thin:@SERVER.NAME:PORT:INSTANCE --password **** \
 --username MYSCHEMA --query "BEGIN MYSCHEMA.TEST_STORED_PROCEDURE_NAME; END;"

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM