Ticker

6/recent/ticker-posts

Apex Application Report এর মধ্যে 4000 এর বেশি অক্ষর কীভাবে দেখাবেন?

Apex Application Report এর মধ্যে 4000 এর বেশি অক্ষর কীভাবে দেখাবেন?

সম্ভবত আপনার এটি নিয়ে চিন্তা করা উচিত - কে স্ক্রিনে CLOB বিষয়বস্তু পড়তে চায়? যে শুধু অত্যধিক পাঠ্য. একটি ভাল বিকল্প হতে পারে ব্যবহারকারীদের CLOB সামগ্রী ডাউনলোড করতে দেওয়া, যদি তারা চায় (এবং প্রদর্শন যেমন প্রথম 100 বা 200 অক্ষর)। অন্যথায়, একটি PL/SQL ডায়নামিক বিষয়বস্তু অঞ্চলের ধরনে স্যুইচ করা সাহায্য করে কিনা তা দেখুন৷ এর মানে হল যে আপনি আসলে রিপোর্টটি ম্যানুয়ালি "আঁকবেন", একটি লুপে CLOB বিষয়বস্তু পড়বেন এবং htp.p কলগুলি ব্যবহার করে অঞ্চল তৈরি করবেন৷ নমুনা কোড ইউনিভার্সাল থিম পৃষ্ঠাগুলিতে পাওয়া যায়। যদি এটি অনুপলব্ধ হয়ে যায়, তাহলে এটি এখানে:

Example-1..............

			
				
                DECLARE
CURSOR c_tasks IS
    SELECT B_DATA, C_DATA
      FROM TEST_DATA
     WHERE ROWNUM < 5;
BEGIN
sys.HTP.p ('');

FOR a IN c_tasks
LOOP
    sys.HTP.p (
           ''
        || apex_escape.html (a.task_name)
        || ' ('
        || apex_escape.html (a.assigned_to)
        || ')');
END LOOP;

sys.HTP.p ('');
END;    

				
				
			
		

Example-2..............

			
				
                SELECT DECODE (
       status,
       'active',    reason1
                 || reason2
                 || reason3
                 || SUBSTR (
                        other,
                        1,
                        4000 - LENGTH (reason1 || reason2 || reason3)),
       'inactive', reasonforchange)    reason
FROM "TEST_DATA";

			
		

আপনি যদি প্রথম 4000 বাইট চান, তাহলে সর্বোচ্চ দৈর্ঘ্যের প্রাক-গণনা করুন যা ফিট করে:

			
				
                WITH
data
AS
    (    SELECT 1 id, LEVEL rn, 'x' txt
           FROM DUAL
     CONNECT BY LEVEL <= 4000
     UNION ALL
         SELECT 2 id, LEVEL rn, 'y' txt
           FROM DUAL
     CONNECT BY LEVEL = 4000),
check_length
AS
    (SELECT id,
            B_DATA,
              SUM (LENGTHB (txt)) OVER (PARTITION BY id ORDER BY rn)
            + COUNT (*) OVER (PARTITION BY id ORDER BY rn)
            - 1    total_length,
            txt
       FROM TEST_DATA)
SELECT id, LISTAGG (B_DATA, ',') WITHIN GROUP (ORDER BY rn) txt_list
FROM TEST_DATA
WHERE total_length <= 4000
GROUP BY id;

				
				
			
		

4000 টিরও বেশি অক্ষর সহ কলাম৷...

			
				CREATE TABLE TEST_DATA
(
B_DATA    CLOB
);


INSERT INTO TEST_DATA
 VALUES (RPAD (TO_CLOB ('a_data'), 4001, 'a_daTa'));
			
		

আমার সমাধান, যা বারবার প্রশ্নগুলির জন্য ব্যবহার করা উচিত নয় (বরং VARCHAR2 কলামে ডেটা নিষ্কাশন এবং লোড/সঞ্চয় করার জন্য), হল:

			
				CREATE OR REPLACE FUNCTION SUBSTR_BIG_DATA_MULTIBYTE_CLOB (P_DATA          IN CLOB,
                                              P_START_INDEX   IN NUMBER)
RETURN VARCHAR2
AS
P_OUT      VARCHAR2 (4000 BYTE);
P_LENGTH   NUMBER := 4000;
BEGIN
FOR loop_counter IN 1 .. 400
LOOP
    BEGIN
        P_OUT :=
            DBMS_LOB.SUBSTR (P_DATA,
                             P_LENGTH - ((loop_counter - 1) * 10),
                             P_START_INDEX);
        RETURN P_OUT;
    EXCEPTION
        WHEN OTHERS
        THEN
            IF    SQLCODE = -12801
               OR SQLCODE = -6502
               OR SQLCODE = -1401
               OR SQLCODE = -1489
            THEN
                NULL; 
            ELSE
                RAISE;
            END IF;
    END;
END LOOP;
END SUBSTR_BIG_DATA_MULTIBYTE_CLOB;
			
		

একটি বড় Oracle CLOB কলাম থেকে কিভাবে 5 MB পর্যন্ত ডেটা আনতে হয়

			
				DECLARE
subs            VARCHAR2 (32767);
BIG_DATA_clob   CLOB;
BEGIN
SELECT B_DATA INTO BIG_DATA_clob FROM TEST_DATA;

subs := DBMS_LOB.SUBSTR (BIG_DATA_clob, 32767, 1);

DBMS_OUTPUT.put_line ('Clob length: ' || DBMS_LOB.getlength (subs));
END;
/


DECLARE
subs            CLOB;
BIG_DATA_clob   CLOB;
BEGIN
SELECT B_DATA INTO BIG_DATA_clob FROM TEST_DATA;

subs := DBMS_LOB.SUBSTR (BIG_DATA_clob, 32768, 1);

DBMS_OUTPUT.put_line ('Clob length: ' || DBMS_LOB.getlength (subs));
END;
/
			
		

একটি ফাংশন তৈরি করুন এবং যখনই আপনাকে CLOB কলাম নির্বাচন করতে হবে তখনই সেই ফাংশনটি কল করুন।

			
				CREATE OR REPLACE FUNCTION CLOB_TO_CHAR (CLOB_COLUMN          IN CLOB,
                                     FOR_HOW_MANY_BYTES   IN NUMBER,
                                     FROM_WHICH_BYTE      IN NUMBER)
RETURN VARCHAR2
IS
BEGIN
RETURN SUBSTRB (
           DBMS_LOB.SUBSTR (CLOB_COLUMN,
                            FOR_HOW_MANY_BYTES,
                            FROM_WHICH_BYTE),
           1,
           FOR_HOW_MANY_BYTES);
END;
			
		
ফাংশনটিকে কল করুন;
				
					
                SELECT TOCHARVALUE, CLOB_TO_CHAR (TOCHARVALUE, 1, 9999)
FROM (SELECT BIG_DATA AS TOCHARVALUE FROM TEST_DATA);

				
			

কিভাবে Oracle apex অ্যাপ্লিকেশনে পাঠ্য খুঁজে এবং প্রতিস্থাপন করবেন?

PLPLE একটি অক্ষরের একককে অন্য একক দিয়ে প্রতিস্থাপন করতে ওরাকলে কাজ করে। REPLACE আপনাকে উদ্ধৃতি থেকে যেকোনো অবাঞ্ছিত অক্ষর সরাতে দেয়। সার্চ_স্ট্রিং খালি হলে ওরাকল কোনো পরিবর্তন ছাড়াই আসল এক্সপ্রেশনটি ফেরত দেয়।

						
							SELECT ID,
     NAME,
     MAMLA_NO,
     REPLACE (MAMLA_NO, ' style="font-size:22px"', '')     MAMLA_NO,
     REG_NO
FROM PART_16
WHERE REG_NO IS NULL
ORDER BY id
						
					

🔗 Demo Application-
URL- Demo Application
Username - demo, Pass- demo

Please stay tuned by subscribing to the YouTube channel, and encourages new videos to be uploaded.
=================
Visit my site to get more collaborative posts about Oracle Apex and subscribe to my YouTube channel. Thanks.
Comment on any of your issues, I will try my best to solve the problem, In-Shah Allah. Everyone's cooperation is desirable.
Visit my blog site, new technology-related videos, you will get different types of tutorials of Oracle Apex, and hopefully, you can use them in your daily work.
==============================

🙍🏾‍ Md jABER HOSSEN
📲 Mobile- +8801760688286
📨 Email- jaberit786@gmail.com
🌐 FB- facebook.com/mdjaber.hossen1
Please Subscribe to My Channel

Many thanks for visiting the site.

Then Enjoy.........................

My Ping in TotalPing.com

Post a Comment

0 Comments