Oracle Sample Code Send SMS
Code for creating package body and procedure:
set define off;
CREATE OR REPLACE PACKAGE sms_api IS
FUNCTION send_sms(mobiles IN VARCHAR2,
message IN VARCHAR2,
sender IN VARCHAR2,
route IN PLS_INTEGER,
country IN PLS_INTEGER,
flash IN PLS_INTEGER,
unicode IN PLS_INTEGER,
schtime IN VARCHAR2,
campaign IN VARCHAR2,
response IN VARCHAR2 DEFAULT 'text',
authkey IN VARCHAR2 DEFAULT 'Your auth key')
RETURN VARCHAR2;
END sms_api;
/
CREATE OR REPLACE PACKAGE BODY sms_api IS
FUNCTION get_clobFromUrl(p_url VARCHAR2) RETURN CLOB IS
req utl_http.req;
resp utl_http.resp;
val VARCHAR2(32767);
l_result CLOB;
BEGIN
req := utl_http.begin_request(p_url);
resp := utl_http.get_response(req);
LOOP
utl_http.read_line(resp, val, TRUE);
l_result := l_result || val;
END LOOP;
utl_http.end_response(resp);
RETURN l_result;
EXCEPTION
WHEN utl_http.end_of_body THEN
utl_http.end_response(resp);
RETURN l_result;
WHEN OTHERS THEN
utl_http.end_response(resp);
RAISE;
END;
FUNCTION send_sms(mobiles IN VARCHAR2,
message IN VARCHAR2,
sender IN VARCHAR2,
route IN PLS_INTEGER,
country IN PLS_INTEGER,
flash IN PLS_INTEGER,
unicode IN PLS_INTEGER,
schtime IN VARCHAR2,
campaign IN VARCHAR2,
response IN VARCHAR2 DEFAULT 'text',
authkey IN VARCHAR2 DEFAULT 'Your auth key')
RETURN VARCHAR2 IS
l_url VARCHAR2(32000) := 'http://api.msg91.com/api/sendhttp.php';
l_result VARCHAR2(32000);
BEGIN
l_url := l_url || '?authkey=' || authkey;
l_url := l_url || '&mobiles=' || mobiles;
l_url := l_url || '&message=' || message;
l_url := l_url || '&sender=' || sender;
l_url := l_url || '&route=' || route;
l_url := l_url || '&country=' || country;
l_url := l_url || '&flash=' || flash;
l_url := l_url || '&unicode=' || unicode;
IF schtime IS NOT NULL THEN
l_url := l_url || '&schtime=' || schtime;
END IF;
l_url := l_url || '&response=' || response;
l_url := l_url || '&campaign=' || campaign;
l_url := utl_url.escape(l_url);
l_result := get_clobFromUrl(l_url);
RETURN l_result;
END;
END sms_api;
/
Run:
SELECT sms_api.send_sms('mobiles','message','senderId',route,country,flash,unicode,schtime,'campaign','response','Your auth key') FROM dual;
Example :
SELECT sms_api.send_sms('5656565656,8767876786','this is test msg','tester',4,91,0,0,NULL,'test','text','Your auth key') FROM dual;
Parameter name | Data type | Description |
---|---|---|
mobiles * | integer | Multiple numbers should be separated by comma (,) Ex : '5656565656,8767876786' |
message * | varchar | Message content to send |
senderId * | varchar | Receiver will see this as sender's ID. |
route * | varchar | If your operator supports multiple routes then give one route name. Eg: route=1 for promotional, route=4 for transactional SMS. |
country | numeric | 0 for international,1 for USA, 91 for India. |
flash | integer (0/1) | flash=1 (for flash SMS) |
unicode | integer (0/1) | unicode=1 (for unicode SMS) |
schtime | date and time | When you want to schedule the SMS to be sent. Time format will be Y-m-d h:i:s |
campaign | varchar | Campaign name you wish to create. |
response | varchar | By default you will get response in string format but you want to receive in other format (json,xml) then set this parameter. for example: &response=json or &response=xml |
authkey * | alphanumeric | Login authentication key (this key is unique for every user) |