[Pgsql-ayuda] Intrigas al comienzo

rodrigo miranda rodrigonibaldo@terra.cl
23 Jan 2004 01:22:41 +0000


Hola saludos bueno les cuento me he animado a conocer postgresql y me
encantaria si me pueden ayudar con el primer problema que me he
encontrado.
A ver tengo este procedimiento almacenado sacado de un manual  por ahi 
que lo he estado probando.

 create function calclenght(text) returns int4 as
 ' Declare
     intext Alias For $1;
     result int4;
  Begin
     result:=(Select lenght(intext));
     return result;
  End
'LANGUAGUE "plpgsql";

Bueno resulta que esto lo trato de ejecutar desde un script pequeño de
php y me encuentro con  2 dudas:

<? require("../ppostgres/config.php");
?>
<html>
  <body>
   <table>
     <? $sql  ="";
	    $sql .="Select calclenght('abcde')";
		$res  = pg_query($sql);
		while($row=pg_fetch_array($res)){
		 $num = $row["0"];
		 echo $num;
	    }
	?>
   </table>
  </body>
</html>

Bueno en el config.php esta la conexion a la base de datos que anda
bien..., pero primero me tira error por el:

result:=(Select lenght(intext)); que se encuentra en el proc almacenado,
porque el lenght no funciona?  pero bueno como la idea es conocer como
sacar la informacion desde el proc almacenados desde php lo modifique
para que retornara un numero 4.y quedo asi:
create function calclenght(text) returns int4 as
 ' Declare
     intext Alias For $1;
     result int4;
  Begin
     result:=4;
     return result;
  End
'LANGUAGUE "plpgsql";
Bueno ahi me resulto y pude desplegar el 4 en pantalla , pero aca va mi
otra pregunta , creo que esta opcion no es la optima para sacar lo que
devuelve un procedimiento almacenado. cual podria ser.. o es la que se
usa para remplazar esta.

<? require("../ppostgres/config.php");
?>
<html>
  <body>
   <table>
     <? $sql  ="";
	    $sql .="Select calclenght('abcde')";
		$res  = pg_query($sql);
		while($row=pg_fetch_array($res)){
		 $num = $row["0"];
		 echo $num;
	    }
	?>
   </table>
  </body>
</html>

De antemano gracias por la atencion y quiero sus sugerencias a mis 2
preguntas, byeeee...