Oracle PLSQL Gateway is the best method to use web services in old versions of Oracle Databases (10g).
I found that using oracle PLSQL Gateway , builtin feature is very useful in my case .
PLSQL Gateway depends on DAD (DataBase Access Descriptor), In the following steps we'll configure PLSQL Gateway.
* Run the following commands under SYS privilege, All are CASE sensitive.
2. Associate DAD with User who privileges must be used with DAD:
3.Setting GATEWAY PORT:
POST (Insert Data) Example :
Update :
Arabic is readable inside Android Studio, but when it comes to Flutter , you must change NLS Language attribute :
I found that using oracle PLSQL Gateway , builtin feature is very useful in my case .
PLSQL Gateway depends on DAD (DataBase Access Descriptor), In the following steps we'll configure PLSQL Gateway.
* Run the following commands under SYS privilege, All are CASE sensitive.
- Create DAD :
BEGIN DBMS_EPG.create_dad ( DAD_NAME => 'sit_dad', PATH => '/sit_dad/*'); END; /
2. Associate DAD with User who privileges must be used with DAD:
BEGIN DBMS_EPG.set_dad_attribute ( dad_name => 'sit_dad', attr_name => 'database-username', attr_value => 'SCOTT'); -- Is the target USER END; /
3.Setting GATEWAY PORT:
1.First Check if port is set before:
4. To gain Anonymous Access:
SELECT DBMS_XDB.gethttpport FROM dual;
2. If not exists then, set it :
EXEC DBMS_XDB.sethttpport(8080);
EXEC DBMS_EPG.SET_DAD_ATTRIBUTE('sit_dad', 'database-username', 'ANONYMOUS');
ALTER USER ANONYMOUS ACCOUNT UNLOCK ;
then , Recreate DAD Again STEP #1
5. Grant execute on DBMS_EPG:
5. Grant execute on DBMS_EPG:
GRANT EXECUTE ON DBMS_EPG TO SCOTT;
* Run the following commands using SCOTT user:
EXEC DBMS_EPG.AUTHORIZE_DAD('sit_dad');
Here's an example For Get Data:
CREATE OR REPLACE PROCEDURE TEST(P_Id IN NUMBER) IS CURSOR GET_Dept_EMPS IS SELECT Empno, Ename, Job, Sal,Deptno FROM EMP WHERE DeptNo = P_Id; BEGIN -------------- FOR i IN GET_Dept_EMPS LOOP HTP.P('Emp: '||i.Empno||', Name: '||i.Ename||' Job: '||i.Job||', Sal: '||i.Sal||', Dept: '||i.Deptno); END LOOP; -------------- END;
To call it:
POST (Insert Data) Example :
CREATE OR REPLACE PROCEDURE ADD_DEPT( P_Depto IN NUMBER, P_DName IN VARCHAR, P_Loc IN VARCHAR) IS BEGIN -------------------------- INSERT INTO DEPT ( DeptNo , DName , Loc) VALUES ( P_Depto , P_DName , P_Loc); COMMIT; -------------------------- HTP.PRINT('Done, data Inserted'); -------------------------- EXCEPTION WHEN OTHERS THEN HTP.PRINT('ERROR: '||SQLERRM ); END ADD_DEPT;
To call it:
http://localhost:8080/sit_dad/ADD_DEPT?P_Depto=11&P_DName=ITDEV&P_Loc=CAIROUpdate :
Arabic is readable inside Android Studio, but when it comes to Flutter , you must change NLS Language attribute :
BEGIN DBMS_EPG.set_dad_attribute ( dad_name => 'sit_dad', attr_name => 'nls-language', attr_value => 'American_America.UTF8'); END; /
No comments:
Post a Comment