Help Center/
GaussDB/
Developer Guide(Centralized_3.x)/
Application Development Guide/
ECPG-based Development/
Running SQL Commands/
Embedded SQL Commands/
TYPE
Updated on 2024-05-07 GMT+08:00
TYPE
Function
Defines a new data type. This command is identified only when ecpg is run with the -c option.
Syntax
TYPE type_name IS ctype
Parameters
type_name
Data type name.
ctype
C type description.
Examples
EXEC SQL TYPE customer IS struct { varchar name[50]; int phone; }; EXEC SQL TYPE cust_ind IS struct ind { short name_ind; short phone_ind; }; EXEC SQL TYPE c IS char reference; EXEC SQL TYPE ind IS union { int integer; short smallint; }; EXEC SQL TYPE intarray IS int[AMOUNT]; EXEC SQL TYPE str IS varchar[BUFFERSIZ]; EXEC SQL TYPE string IS char[11];
Example of using EXEC SQL TYPE (note that the -c parameter needs to be added in the ecpg preprocessing phase when the following example is used):
#include <stdlib.h> #include <string.h> #include <stdio.h> EXEC SQL WHENEVER SQLERROR SQLPRINT; EXEC SQL TYPE tt IS struct { varchar v[256]; int i; }; EXEC SQL TYPE tt_ind IS struct ind { short v_ind; short i_ind; }; int main(void) { EXEC SQL BEGIN DECLARE SECTION; tt t; tt_ind t_ind; EXEC SQL END DECLARE SECTION; EXEC SQL CONNECT TO testdb AS con1; EXEC SQL SELECT pg_catalog.set_config('search_path', '', false); EXEC SQL COMMIT; EXEC SQL SELECT current_database(), 256 INTO :t:t_ind LIMIT 1; printf("t.v = %s\n", t.v.arr); printf("t.i = %d\n", t.i); printf("t_ind.v_ind = %d\n", t_ind.v_ind); printf("t_ind.i_ind = %d\n", t_ind.i_ind); EXEC SQL DISCONNECT con1; return 0; }
The output of this example is as follows.
t.v = testdb t.i = 256 t_ind.v_ind = 0 t_ind.i_ind = 0
Parent topic: Embedded SQL Commands
Feedback
Was this page helpful?
Provide feedbackThank you very much for your feedback. We will continue working to improve the documentation.See the reply and handling status in My Cloud VOC.
The system is busy. Please try again later.
For any further questions, feel free to contact us through the chatbot.
Chatbot