@@ -943,6 +943,27 @@ def insert_singers(transaction):
943
943
# [END spanner_dml_getting_started_insert]
944
944
945
945
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
+
946
967
def write_with_dml_transaction (instance_id , database_id ):
947
968
""" Transfers a marketing budget from one album to another. """
948
969
# [START spanner_dml_getting_started_update]
@@ -1145,6 +1166,8 @@ def update_albums(transaction):
1145
1166
'update_data_with_dml_struct' ,
1146
1167
help = update_data_with_dml_struct .__doc__ )
1147
1168
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__ )
1148
1171
subparsers .add_parser (
1149
1172
'write_with_dml_transaction' , help = write_with_dml_transaction .__doc__ )
1150
1173
subparsers .add_parser (
@@ -1227,6 +1250,8 @@ def update_albums(transaction):
1227
1250
update_data_with_dml_struct (args .instance_id , args .database_id )
1228
1251
elif args .command == 'insert_with_dml' :
1229
1252
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 )
1230
1255
elif args .command == 'write_with_dml_transaction' :
1231
1256
write_with_dml_transaction (args .instance_id , args .database_id )
1232
1257
elif args .command == 'update_data_with_partitioned_dml' :
0 commit comments