मैं एक अस्थायी तालिका का उपयोग कर एक SQLBase LONG VARCHAR कॉलम को VARCHAR कॉलम में कनवर्ट/कास्ट करने का प्रयास कर रहा हूं।

उपयोग की जा रही स्रोत तालिका में "लॉन्ग वर्कर" प्रकार का एक टिप्पणी फ़ील्ड कॉलम है। मैं कन्वर्ट/कास्ट फ़ंक्शन का उपयोग करने के लिए सही वाक्यविन्यास नहीं ढूंढ पा रहा हूं।

अगर मैं नीचे के रूप में निहित रूप से कास्ट/रूपांतरित करने का प्रयास करता हूं, तो मुझे जो त्रुटि मिलती है वह है:

त्रुटि: 01627 TYP LON अमान्य डेटा प्रकार (लंबे समय से अपेक्षित)

create table SYSADM.TMP_STUDENT_ (
    STUDENT_NO integer,
    STUDENT_COMMENTS nvarchar(255)
) pctfree 10;

insert into SYSADM.TMP_STUDENT_ (
    STUDENT_NO ,
    STUDENT_COMMENTS ) select
    STUDENT_NO,
    STUDENT_COMMENTS 
from SYSADM.STUDENT;

grant all on SYSADM.TMP_STUDENT_ to PUBLIC;

0
user2427375 8 जुलाई 2020, 07:21

1 उत्तर

सबसे बढ़िया उत्तर

आप उप-चयन में एक लंबे वचर कॉलम का उपयोग नहीं कर सकते हैं।

लेकिन आप जो चाहते हैं उसे प्राप्त करने के लिए आप एक UNLOAD (तालिका) और फिर एक LOAD (नई तालिका में) चला सकते हैं।

इन आदेशों के लिए सभी सिंटैक्स विकल्प देखने के लिए यहां जाएं: SQLBase Books। अपने इच्छित संस्करण को डाउनलोड करें, और 'भाषा संदर्भ' मैनुअल पढ़ें, विशेष रूप से UNLOAD और LOAD। यह काम करेगा यदि आपको सिंटैक्स सही मिलता है - मैंने इसे पहले किया है, लेकिन यहां सभी विकल्पों को कवर करने के लिए बहुत कुछ है ..

वैकल्पिक रूप से, आप एक संग्रहीत कार्यविधि लिख सकते हैं (SQLBase Stored Procs बहुत बढ़िया हैं - आप SAL का उपयोग TD में कर सकते हैं। यदि आप SQLCommandCentre का उपयोग करते हैं तो लिखना आसान है) SQLTalk से निष्पादित करने के लिए। एक लूप में, लॉन्ग कॉल को लॉन्ग स्ट्रिंग में पढ़ें, और फिर लॉन्ग स्ट्रिंग से वर्चर कॉल में डालें।

0
Steve Leighton 20 जुलाई 2020, 04:10