Hive中建立和呼叫儲存過程及自定義函式
前面的文章《在Hive中實現儲存過程–HQL/SQL》中介紹瞭如何使用HPL/SQL在Hive中實現儲存過程,執行類似Oracle PL/SQL的功能。
一般的業務場景是資料開發人員開發好一個儲存過程,然後週期性的呼叫,傳入不同的引數即可。
本文繼續介紹如何在Hive中利用HPL/SQL建立和呼叫儲存過程。
使用下面的語句建立一個儲存過程set_message,它接受一個STRING型別的IN引數,輸出一個STRING型別的OUT引數。
- CREATE PROCEDURE set_message(IN name STRING, OUT result STRING)
- BEGIN
- SET result = 'Hello, ' || name || '!';
- END;
Oracle以及其他關係型資料庫會將建立的儲存過程儲存到自身的元資料中,但HQL/SQL中並不是,而是儲存在本地檔案中。
將上面的語句儲存到一個本地檔案中,比如:/home/lxw1234/set_message.sql
在以後需要呼叫該儲存過程的指令碼的第一行,使用INCLUDE <procedure_file_name>引入儲存過程的指令碼檔案/home/lxw1234/set_message.sql
注意:行尾沒有分號。
比如,2.sql檔案中的內容如下:
- INCLUDE /home/lxw1234/set_message.sql
- DECLARE str STRING;
- CALL set_message('lxw1234.com', str);
- PRINT str;
使用./hplsql -f 2.sql執行:
- [[email protected] hplsql-0.3.11]$ ./hplsql -f 2.sql
- Open connection: jdbc:hive2://172.16.212.17:10000 (110 ms)
- Starting query
- Query executed successfully (48.90 sec)
- 1
- Hello, lxw1234.com!
如果在2.sql檔案中沒有使用INCLUDE引入儲存過程檔案,則返回結果為null。
HPL/SQL自定義函式的建立和呼叫方法同儲存過程,這裡不再累贅。
相關推薦
Hive中建立和呼叫儲存過程及自定義函式
前面的文章《在Hive中實現儲存過程–HQL/SQL》中介紹瞭如何使用HPL/SQL在Hive中實現儲存過程,執行類似Oracle PL/SQL的功能。 一般的業務場景是資料開發人員開發好一個儲存過程,然後週期性的呼叫,傳入不同的引數即可。 本文繼續介紹如何在Hive中利
oracle儲存過程及自定義函式(儲存函式)初學
1.儲存過程和儲存函式的主要區別 儲存函式可以通過return返回函式值;儲存函式可以在SQL語句內部呼叫;儲存函式較儲存過程有諸多限制;儲存過程用select語句返回記錄集,儲存函式使用表變數返回記錄集。 2.儲存過程和儲存函式的建立 儲存過程的
建立和呼叫儲存過程:查詢Stu資料庫中某個同學的選修課程的資訊,包括學號,姓名,課程名稱,成績
CREATE PROCEDURE proc_select--建立儲存過程 @Sno char(10) output,--輸入輸出引數 @Sname varchar(20) out,--輸出引數 @Cno char(4) out,--輸出引數 @grade tinyint
oracle PLSQL建立和呼叫儲存過程
我是在PLSQL的command window裡使用的命令建表 drop table students; create table students(ID int,userName varchar(100),userpass varchar(100),userAge int)
Oracle建立和呼叫儲存過程,函式,檢視
【1】Oracle建立和呼叫儲存過程1:寫一個簡單的例子刪除三級級聯 1)create or replace procedure ww_procedure_servicecheck (V_ID IN NUMBER)-- 定義輸入變數 IS begin DELETE
在PL/SQL中建立、呼叫儲存過程--oracle
在oracle10中寫好了儲存過程,程式碼如下:CREATE OR REPLACE Procedure Proc_Insert ( sName in varchar2, sAge in int, sE
Mysql中儲存過程與自定義函式的區別
建立儲存過程: CREATE [definer = {user|current_user}] PROCEDURE sp_name ([ proc_parameter [,proc_parameter ...]]) [ characteristi
除錯SQL Server的儲存過程及使用者定義函式
1、在查詢分析器中除錯 查詢分析器中除錯的步驟如下:SQL 2000查詢分析器--左連的物件瀏覽器(沒有的話按F8)--物件項中--右鍵除錯的儲存過程--除錯--輸入引數(必須輸入所有的引數,包括預設值/輸出引數--點選執行--出現一個浮動工具條--上面有單步執行,斷點設定
MySQL儲存過程/儲存過程與自定義函式的區別
儲存過程:簡單的說,就是一組SQL語句集,功能強大,可以實現一些比較複雜的邏輯功能,類似於JAVA語言中的方法;ps:儲存過程跟觸發器有點類似,都是一組SQL集,但是儲存過程是主動呼叫的,且功能比觸發器更加強大,觸發器是某件事觸發後自動呼叫;有哪些特性:有輸入輸出引數,可以宣
MySQL觸發器、儲存過程、自定義函式、檢視 常用SQL
1.建立一個userinfo表新增記錄時的觸發器 將新增日誌加入到userinfolog 2.建立一個向userinfo表新增記錄的儲存過程 3.根據userinfo表的出生日期欄位 我們將建立一個簡單算得年齡的自定義函式 4.建立一個userinfo的檢視 呼叫年齡函式
java中使用mybatis呼叫儲存過程,拿到返回值(單引數返回值)
service業務層呼叫dao層 注意:返回值直接從物件裡獲取 不需要拿物件接收再獲取 dao.uspGetUser(userPO);//物件封裝了儲存過程的入參和出參 count = userPO.getCount(); //count 是儲存過程的返回值 dao層介面 pu
codeblocks中建立和呼叫動態連結庫(dll)
一、建立C語言動態連結庫 1.建立。 File->New->Projects->Dynamic Link library->Go 給專案命名為:Dynamic librar
ADO.NET系列之事務和呼叫儲存過程
ADO.NET系列之Connection物件 ADO.NET系列之Command物件 ADO.NET系列之DataAdapter物件 ADO.NET系列之事務和呼叫儲存過程 &nbs
建立五種儲存過程及遊標的使用
--建立儲存過程 --A. 建立使用引數的儲存過程 CREATE PROC au_info @lastname varchar(40), @firstname varchar(20) AS SELECT au_lname, au_fname, title, pub_
大資料入門教程系列之Hive內建函式及自定義函式
本篇文章主要介紹Hive內建函式以及自定義UDF函式和UDFT函式,自定義UDF函式通過一個國際轉換中文的例子說明。 操作步驟: ①、準備資料和環境 ②、演示Hive內建函式 ③、自定義UDF函式編寫、演示 詳細步驟: 一、準備資料和
Java併發程式設計中四種執行緒池及自定義執行緒使用教程
引言 通過前面的文章,我們學習了Executor框架中的核心類ThreadPoolExecutor ,對於執行緒池的核心排程機制有了一定的瞭解,並且成功使用ThreadPoolExecutor 建立了執行緒池。 而在Java中,除了ThreadPoolExecutor ,Executor框
Hive 內建函式及自定義函式
1.內建函式 使用如下命令檢視當前hive版本支援的所有內建函式 show functions; 部分截圖: 可以使用如下命令檢視某個函式的使用方法及作用,比如檢視 upper函式 desc function upper; 如果想要檢
MapReduce中的combiner類詳解及自定義combiner類(轉)
一、Combiner的出現背景 1.1 回顧Map階段五大步驟 在第四篇博文《初識MapReduce》中,我們認識了MapReduce的八大步湊,其中在Map階段總共五個步驟,如下圖所示: 其中,step1.5是一個可選步驟,它就是我們今天需要了解的 M
Feign詳細構建過程及自定義擴充套件
探究清楚 feign 的原理,自定義 feign 功能 spring-cloud-openfeign-core-2.1.1.RELEASE.jar 中 HystrixFeign 的詳細構建過程: @EnableFeignClients -> FeignClientsRegistrar 掃描 @Feign
SQL SERVER 查找出不含自增項和計算欄位的自定義函式
IF EXISTS (SELECT * FROM sysobjects WHERE name = 'B_GetTableWithOutCompute' AND user_name(uid) = 'dbo') DROP FUNCTION B_GetTableWithOu