2014-07-23 6 views
0

Il existe probablement un bon document qui explique comment créer un proc stocké dans HSQLDB. Voilà où je suis rester coincé: -HSQLDB et les procédures stockées

CREATE PROCEDURE addone(ivar int) 
BEGIN ATOMIC 
DECLARE result CURSOR FOR SELECT ivar+1; 
OPEN result;  
END 

est cependant obtenir simplement erreur de retour - pas de détails - toute personne idées?

+0

Le manuel contient plusieurs exemples: http://hsqldb.org/doc/2.0/guide/sqlroutines-chapt.html#src_psm_routines –

+0

N'utilisez pas RESULT comme nom. Pour utiliser un SELECT comme le vôtre, vous devez utiliser le mode de compatibilité MySQL ou PostgreSQL. – fredt

Répondre

2

Ci-dessous, un exemple HSQL procédure, à partir d'un fichier de test HSQL que vous avez téléchargé avec le fichier hsqldb.zip (dans le répertoire TestRun \ hsqldb \ TestSelfStoredProcedure.txt) à la ligne 441.


CREATE PROCEDURE procedure_test(INOUT val INT) READS SQL DATA 
    DYNAMIC RESULT SETS 1 
    BEGIN ATOMIC 
    declare curs cursor for select table_schema, table_name from information_schema.tables where table_name='LOB_IDS' and table_schema='SYSTEM_LOBS'; 
    select count(*) into val from information_schema.columns where table_name='LOB_IDS' and table_schema='SYSTEM_LOBS'; 
    open curs; 
    END 

S'il vous plaît noter que votre instruction Select, n'est pas une déclaration complète Select, au moins que vous avez posté,

Sliderule

+0

Essayer d'utiliser ce qui précède dans SquirrelSQL Je reçois l'erreur CREATE Erreur: fin inattendue de l'instruction: requis:; : Ligne: 4 SQLState: 42590 ErrorCode: -5590 erreur est survenue dans: CREATE PROCEDURE procedure_test (INOUT val INT) lit SQL DATA DYNAMIC RESULT SETS 1 BEGIN ATOMIC declare curseur de curs pour select table_schema, table_name de information_schema. tables où table_name = 'LOB_IDS' et table_schema = 'SYSTEM_LOBS' –

+0

J'ai utilisé SqlTool (sqltool.jar) pour exécuter l'instruction CREATE PROCEDURE, et cela a fonctionné parfaitement. SqlTool est inclus dans le téléchargement de la base de données HSQL dans le fichier hsqldb.zip. En outre, j'ai été en mesure d'accomplir la tâche en utilisant à la fois, Gestionnaire de base de données, et, Swing Gestionnaire de base de données. . . outils disponibles à partir de la base de données HSQL. – Sliderule

+0

Juste un commentaire ou une pensée supplémentaire. . . le programme . . .SQL Workbench. . . qui peut être téléchargé à partir de http://www.sql-workbench.net/ et il adresse explicitement (résout) le problème, s'il vous plaît lire cette page web: http://www.sql-workbench.net/manual/troubleshooting.html # error-create-procedure – Sliderule