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.........................

0 Comments