>SELECT client_name,report_contact,po_number,report_address,report_address_2,;
>report_city,report_state,report_zip,report_phone,billing_contact,;
>billing_address,billing_address_2,billing_city,billing_state,billing_zip,;
>billing_phone,shipping_contact,shipping_address,ship_address_2,;
>shipping_city,shipping_state,shipping_zip,shipping_phone,account_number,;
>client_code,sales_person,reporting_name,billing_name,shipping_name,lab_rep,;
>discount_percent,surcharge_percent,client_notes,billing_code,;
>report_fax,report_no,invoice_no,track_number,project_number,project_category,hold,;
>inv_review FROM clients WHERE UPPER(clients.client_code)==vcode INTO ARRAY client_array
Well, to be optimized, 'clients' needs to be indexed on UPPER(client_code), not just client_code. You can use SYS(3054, 1) to find out if your query is optimized.