Source: https://dev-docs.nebula-graph.io/v5.3.2/database-gql-reference/in-out/nebula-exec/ Documentation version: v5.3.2 # nebula_exec procedure The `nebula_exec` procedure executes a GQL query on a remote NebulaGraph Database Developer Edition cluster. You can use this procedure to import data into a graph in NebulaGraph Database Developer Edition. ## Procedure signature ```` nebula_exec(nebula_uri_string: String, gql: String) ```` ## Parameters ### `nebula_uri_string` The URI string used to connect to NebulaGraph Database Developer Edition. The format of the URI is as follows: diagramsource nebula_uri_string ```` nebula_uri_string ::= 'nebula://' username ':' password '@' graph_address ('?' ( tls_parameter_name '=' tls_parameter_value) ('&' ( tls_parameter_name '=' tls_parameter_value))* )? ```` #### `username` The username used to connect to NebulaGraph Database Developer Edition. #### `password` The current password for the account used to connect to the remote instance. #### `graph_address` The address of the Graph service in NebulaGraph Database Developer Edition. Format: `ip:port`. #### `tls_parameter_name` and `tls_parameter_value` The parameters used to configure TLS when connecting to the Graph service. For the complete list of TLS parameters, see [tls_parameter_name](https://dev-docs.nebula-graph.io/v5.3.2/database-gql-reference/in-out/import/#tls_parameter_name) and [tls_parameter_value](https://dev-docs.nebula-graph.io/v5.3.2/database-gql-reference/in-out/import/#tls_parameter_value). ### `gql` The GQL query to be executed. ## Examples ### Perform a DDL operation Replace `` in the URI with the current password for the account you use to access the remote instance. If the password has changed, use the new password. ```` CALL nebula_exec('nebula://root:@192.168.8.129:10005', 'CREATE GRAPH IF NOT EXISTS test_movie TYPED movie_type') FINISH ```` ### Perform an insert operation ```` ''' CALL nebula_exec('nebula://root:@192.168.8.129:10005', ' USE test_movie INSERT OR REPLACE (@Director{id:111, name:"Alice", birthDate:date("1990-01-01")}), (TYPED Actor{id:222, name:"Bob", birthDate:date("1990-01-02")}) ') FINISH ''' ```` ### Perform an update operation ```` ''' CALL nebula_exec('nebula://root:@192.168.8.129:10005', ' USE test_movie MATCH (v@Actor{id:222}) SET v.name = "Charlie" ') FINISH ''' ```` ### Perform a delete operation ```` ''' CALL nebula_exec('nebula://root:@192.168.8.129:10005', ' USE test_movie MATCH (v@Actor{id:222}) DELETE v ') FINISH ''' ```` ### Perform a batch update operation The following example is based on the temporary graph `#movie_temporary_graph` created in [CREATE TEMPORARY GRAPH](https://dev-docs.nebula-graph.io/v5.3.2/database-gql-reference/ddl/graph-projection/create/). ```` ''' USE #movie_temporary_graph { TABLE t {id INT, name STRING} VALUE fmt_query = " TABLE t TYPED TABLE {id INT, name STRING} = %s USE test_movie FOR r IN t MATCH (a@Movie) WHERE a.id = r.id SET a.name = r.name" MATCH (a@Movie) PER NODE (a) { EXPORT a.id, "Movie_" || CAST(a.id as STRING) INTO t } FOR split IN table_split(t, CAST(256 as UINT)) CALL nebula_exec("nebula://root:@192.168.8.129:10005", fmt(fmt_query, to_literal(split))) FINISH } ''' ```` The preceding example writes locally computed graph results back to a remote NebulaGraph Database Developer Edition cluster in batches. It iterates over all `Movie` nodes in the temporary graph, generates a new name for each node (in the format `Movie_`), splits the data into batches of up to 256 rows, and sends the update statements to the remote NebulaGraph Database Developer Edition cluster via the `nebula_exec` procedure to batch-update the `name` property of corresponding `Movie` nodes in the `test_movie` graph.