0
我的SQL技能是有限的:發現長度 - 選擇子查詢
我有一個數據庫(SQLBase在這種情況下)已經在列的夫婦LONGVARs的。 我正在搜索具有特定類型的所有COLUMNS的實際長度。
SELECT tbname,name FROM sysadm.syscolumns where coltype='LONGVAR';
上述聲明的作品。它爲我提供了所有具有LONGVAR數據類型的表和相應的列名。現在,我想獲取這些數據並搜索所有相應的表(行,數據)並查找相應LONGVAR列的長度(例如,查找最大值或超過某個限制的值)。
我有這樣的想法,它可以用嵌套SELECT語句的子查詢解決,但不知道如何制定語句。
謝謝。我將它粘貼到控制檯中以運行SQL。當然,我不應該指望這個運行沒有拋出錯誤。但要理解長引用的'SELECT ....'這一行,你能詳細說明一下嗎?我得到:'SELECT tbname, name, 'SELECT'''+ tbname +'''AS TableName,'''+ name +'''AS ColumnName,MAX(LEN('+ name +') )AS ColumnLength FROM'+ tbname +' - 如果需要,在這裏添加一個WHERE子句'AS查詢 ^ 錯誤:00318 EXE DNN數據不是數字' – Krischu
一位同事很善意地修改語句以適應SQLBase語法: SELECT tbname ||';'|| name ||';'|| 'SELECT'''|| tbname || '''AS TableName,'''||名稱|| '''AS ColumnName,MAX(@LENgth('|| name ||'))AS ColumnLength FROM'|| tbname ||'; 'AS查詢 FROM sysadm.syscolumns WHERE coltype ='LONGVAR' ORDER BY TBNAME; ' – Krischu
最後一個問題:由於上面的查詢生成了一個查詢列表,是否有可能將它打包成一個過程並執行這個「數組」或查詢表?在SQL中可以執行存儲在錶行/列中的SQL代碼嗎?類似於unix shell(反引號)。我很確定它是。 – Krischu