Quelqu'un peut-il m'expliquer comment obtenir PROC SQL pour donner les résultats de ma fonction personnalisée la longueur que je spécifie dans la définition de la fonction? Datastep le fait bien, mais SQL me donne la longueur par défaut de 200 caractères.sql ne respecte pas ma fonction fcmp longueur
Voici code qui illustre le problème:
proc fcmp outlib = work.funcs.funcs ;
* Note type/length specification ;
function testy(istr $) $11 ;
return ('bibbitybobb') ;
endsub ;
quit ;
options cmplib = work.funcs ;
data from_dstep ;
set sashelp.class ;
tes = testy(name) ;
run ;
proc sql ;
create table from_sql as
select *
, testy(name) as tes
from sashelp.class
;
describe table from_dstep ;
describe table from_sql ;
quit ;
Mon journal sur c'est:
47 describe table from_dstep ;
NOTE: SQL table WORK.FROM_DSTEP was created like:
create table WORK.FROM_DSTEP(bufsize=65536)
(
Name char(8),
Sex char(1),
Age num,
Height num,
Weight num,
tes char(11)
);
48 describe table from_sql ;
NOTE: SQL table WORK.FROM_SQL was created like:
create table WORK.FROM_SQL(bufsize=65536)
(
Name char(8),
Sex char(1),
Age num,
Height num,
Weight num,
tes char(200)
);
Comme vous pouvez le voir, le datastep m'a donné une longueur de 11 sur mes 'tes' variable, mais sql me donne 200.
Y at-il un moyen d'obtenir la longueur 11 lors de l'utilisation de SQL?