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

गतिशील तालिका निर्माण में समस्या

सबसे आसान उपाय यह होगा कि अंत में पीछे वाले अल्पविराम को हटा दिया जाए:

dbms_output.put_line(rtrim(lsql,',') || ' )');

ऐसा लगता है कि प्रक्रिया को सरल बनाया जा सकता है:

create or replace procedure p1(p_table_nm in varchar2)
is
    l_sql long := 'create table ' || p_table_nm || chr(10);
    l_colsep varchar2(2) := '( ';  -- changes to comma after first item
begin
    for rc1 in (
        select * from t1
        where  table_name = p_table_nm
    )
    loop
        l_sql := l_sql || l_colsep || rc1.column_name || ' ' || rc1.datatype ||
            case
                when rc1.column_width is not null then '(' || rc1.column_width || ')'
            end;

        if rc1.is_null = 'N' then  -- Changed from 'Y' - check requirement
            l_sql := l_sql || ' NOT NULL';
        end if;

        l_sql := l_sql || chr(10);
        l_colsep := ', ';
    end loop;

    dbms_output.put_line(rtrim(l_sql,chr(10)) || ' )');
end;

यह इस तरह आउटपुट देता है:

create table TEST
( FNAME VARCHAR2(10) 
, LNAME VARCHAR2(10) NOT NULL
, STARTDATE DATE NOT NULL )

क्या आप डिफ़ॉल्ट मान, जेनरेट किए गए पहचानकर्ता, वर्चुअल कॉलम, या किसी निर्दिष्ट कॉलम ऑर्डरिंग को संभालने की योजना बना रहे हैं?

क्या आप भी सुनिश्चित हैं कि rc1.is_null = 'Y' मतलब कॉलम अनिवार्य है? यह इसके विपरीत दिखता है।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. अनुक्रमित संख्या कॉलम पर 'पसंद' का उपयोग कर ओरेकल क्वेरी, खराब प्रदर्शन

  2. BLOB Oracle 10g . में छवि सम्मिलित करना

  3. कनेक्शन गुण कैसे सेट करें (समानार्थी शामिल करें)

  4. कैसे (इकाई-) डेटा गहन पीएल/एसक्यूएल एप्लिकेशन का परीक्षण करें

  5. Oracle SQL पदानुक्रमित क्वेरी:पदानुक्रम को समतल करें और एकत्रीकरण करें