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

ORA-01027:बाइंड वेरिएबल्स को डेटा परिभाषा के लिए अनुमति नहीं है, जब उपयोग करने का प्रयास कर रहा है ifelif

जैसा कि त्रुटि कहती है, आप यहां बाइंड वेरिएबल्स का उपयोग नहीं कर सकते हैं, इसलिए आपको संयोजित करना होगा:

create or replace procedure create_dates_testing 
    ( dummy_variable varchar2 default to_char(sysdate,'YYYYMMDD') )
as
    day_of_month varchar2(255) := extract(day from sysdate);
    today varchar2(255) := to_char(sysdate +1, 'fmDAY', 'nls_date_language = English');
    start_date date;
    next_start_date date;
begin
    if today = 'SUNDAY' then
        -- select yesterday
        start_date      := trunc(sysdate) - interval '1' day;
        next_start_date := trunc(sysdate);

    elsif day_of_month = 3 then
        -- select the whole of last month
        start_date      := trunc(sysdate, 'MM') - interval '1' month;
        next_start_date := trunc(sysdate, 'MM') - interval '1' month;
    else
        return;
    end if;

    execute immediate 'drop table new_customers';

    execute immediate 'create table new_customers as 
    select id, client_name, invoice_date 
    from clients table
    where transactiondate >= date '''  || to_char(start_date,'YYYY-MM-DD') ||
    ''' and transactiondate < date ''' || to_char(next_start_date,'YYYY-MM-DD') ||'''';

end create_dates_testing;

संभवत:उस मामले को संभालने के लिए कुछ और कोड होंगे जहां न तो रविवार है और न ही महीने का तीसरा, या new_customers तालिका मौजूद नहीं है।

संपादित करें:जोड़ा गया else यदि कोई भी तारीख की शर्तें पूरी नहीं होती हैं तो प्रसंस्करण समाप्त करने की शर्त।




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. java.sql.SQLException:ORA-01843:मान्य माह नहीं है

  2. Oracledb ड्राइवर के माध्यम से Nodejs के साथ दूरस्थ Oracle DB से कनेक्ट करना

  3. Oracle 11g - कैरिज रिटर्न लाइन फीड के साथ CLOB में रिकॉर्ड खोजें

  4. मैं डिफ़ॉल्ट Oracle के HR स्कीमा के लिए SQL कहाँ से प्राप्त कर सकता हूँ?

  5. एक क्रम में लापता तिथियां ढूँढना