@@ -943,6 +943,27 @@ def insert_singers(transaction):
943943 # [END spanner_dml_getting_started_insert]
944944
945945
946+ def query_data_with_parameter (instance_id , database_id ):
947+ """Queries sample data from the database using SQL with a parameter."""
948+ # [START spanner_query_with_parameter]
949+ # instance_id = "your-spanner-instance"
950+ # database_id = "your-spanner-db-id"
951+ spanner_client = spanner .Client ()
952+ instance = spanner_client .instance (instance_id )
953+ database = instance .database (database_id )
954+
955+ with database .snapshot () as snapshot :
956+ results = snapshot .execute_sql (
957+ "SELECT SingerId, FirstName, LastName FROM Singers "
958+ "WHERE LastName = @lastName" ,
959+ params = {"lastName" : "Garcia" },
960+ param_types = {"lastName" : spanner .param_types .STRING })
961+
962+ for row in results :
963+ print (u"SingerId: {}, FirstName: {}, LastName: {}" .format (* row ))
964+ # [END spanner_query_with_parameter]
965+
966+
946967def write_with_dml_transaction (instance_id , database_id ):
947968 """ Transfers a marketing budget from one album to another. """
948969 # [START spanner_dml_getting_started_update]
@@ -1145,6 +1166,8 @@ def update_albums(transaction):
11451166 'update_data_with_dml_struct' ,
11461167 help = update_data_with_dml_struct .__doc__ )
11471168 subparsers .add_parser ('insert_with_dml' , help = insert_with_dml .__doc__ )
1169+ subparsers .add_parser (
1170+ 'query_data_with_parameter' , help = query_data_with_parameter .__doc__ )
11481171 subparsers .add_parser (
11491172 'write_with_dml_transaction' , help = write_with_dml_transaction .__doc__ )
11501173 subparsers .add_parser (
@@ -1227,6 +1250,8 @@ def update_albums(transaction):
12271250 update_data_with_dml_struct (args .instance_id , args .database_id )
12281251 elif args .command == 'insert_with_dml' :
12291252 insert_with_dml (args .instance_id , args .database_id )
1253+ elif args .command == 'query_data_with_parameter' :
1254+ query_data_with_parameter (args .instance_id , args .database_id )
12301255 elif args .command == 'write_with_dml_transaction' :
12311256 write_with_dml_transaction (args .instance_id , args .database_id )
12321257 elif args .command == 'update_data_with_partitioned_dml' :
0 commit comments