Oracle
 sql >> डेटाबेस >  >> RDS >> Oracle

Oracle संग्रहीत फ़ंक्शन - तालिका नाम को पैरामीटर के रूप में पास करें

  1. एक स्पेस है कीवर्ड से . के बाद गायब तत्काल तत्काल विवरण में।
  2. तत्काल निष्पादित करें कथन में वाक्यविन्यास त्रुटि है . आप INTO . को याद कर रहे हैं खंड।
  3. आप एक लूप के लिए कर्सर के अंदर तत्काल निष्पादन का उपयोग नहीं कर सकते . मूल रूप से, आप कुछ भी नहीं लौटा रहे हैं उपरोक्त बिंदु 2 में उल्लिखित तत्काल कथन निष्पादित करें।
  4. पुनरावृत्ति सिंटैक्स लूप . के लिए सही नहीं। वाक्य रचना FOR r IN 1..COUNT() . है ।

अपना कोड सुधारने के बाद, यह इस तरह दिखेगा:

SQL> CREATE OR REPLACE TYPE TES_JML_OBJ IS OBJECT(JUMLAH NUMBER)
  2  /

Type created.

SQL> CREATE OR REPLACE TYPE TES_JML_TABLE IS TABLE OF TES_JML_OBJ
  2  /

Type created.

SQL> CREATE OR REPLACE
  2    FUNCTION jumlahBaris(
  3        namatabel VARCHAR2)
  4      RETURN tes_jml_table
  5    IS
  6      TABEL TES_JML_TABLE := TES_JML_TABLE();
  7      cnt NUMBER;
  8    BEGIN
  9      EXECUTE IMMEDIATE 'select count(*) as jumlah from ' || NAMATABEL INTO CNT;
 10      FOR R IN 1..CNT
 11      LOOP
 12        TABEL.EXTEND;
 13        TABEL(R) := TES_JML_OBJ(R);
 14        dbms_output.put_line(TES_JML_OBJ(R).jumlah);
 15      END LOOP;
 16      RETURN tabel;
 17    END;
 18    /

Function created.

SQL> SHO ERR
No errors.

तो, बिना किसी त्रुटि के संकलित फ़ंक्शन . आइए निष्पादित करें इसे देखें और आउटपुट . देखें :

SQL> SET SERVEROUTPUT ON
SQL> SELECT JUMLAHBARIS('EMP') FROM DUAL;

JUMLAHBARIS('EMP')(JUMLAH)
--------------------------------------------------------------------------------
TES_JML_TABLE(TES_JML_OBJ(1), TES_JML_OBJ(2), TES_JML_OBJ(3), TES_JML_OBJ(4), TE
S_JML_OBJ(5), TES_JML_OBJ(6), TES_JML_OBJ(7), TES_JML_OBJ(8), TES_JML_OBJ(9), TE
S_JML_OBJ(10), TES_JML_OBJ(11), TES_JML_OBJ(12), TES_JML_OBJ(13), TES_JML_OBJ(14
))


1
2
3
4
5
6
7
8
9
10
11
12
13
14
SQL>


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. ओरेकल 11 जी और जेडीके 1.6 के साथ किस जेडीबीसी जार का उपयोग करना है और डीबी से कैसे कनेक्ट करना है

  2. लिंक टू एंटिटीज ग्रुप बाय (बाहरी आवेदन) oracle 11.2.0.3.0 लागू का समर्थन नहीं करता है

  3. पिछले महीने या वर्ष के गुम डेटा को संचयी रूप से जोड़ें

  4. विशिष्ट स्कीमा पर उपयोगकर्ता विशेषाधिकार कैसे प्रदान करें?

  5. Oracle - तिथियों को तिमाहियों में तोड़ें