Comment lire requête sql à partir d'un txt-fichier en Java

Je suis avoir un peu de classe qui est d'envoyer des requêtes à la base de données. Tout fonctionnait bien, lorsque la requête a été dans le code, mais comme il est assez grand, j'ai décidé de le mettre dans un fichier et de le lire avec tampon lecteur, mais cela ne fonctionne pas, j'ai toujours ceci:

java.sql.SQLException: ORA-00900: invalid instruction SQL

Voici ma requête:

SELECT 
p.first_name           \"FirstName\",  
p.middle_name          \"MiddleName\",  
p.last_name            \"LastName\", 
p.birth_name           \"BirthName\",
p.mothers_name         \"MothersName\",
p.nick_name            \"NickName\",
p.username             \"Username\",
p.currency_id          \"Currency\",
p.preferred_language_id    \"PreferredLanguage\",
p.accepts_email        \"AcceptsEmail\",
p.birth_date           \"BirthDate\",
p.hear_about_us        \"HeardAboutUs\",
p.tax_category_id      \"TaxCategory\",
p.birth_place          \"BirthPlace\",
p.accepts_id_verification      \"AcceptsIdentityVerification\",
p.security_prompt      \"SecurityPrompt\",
p.gender_id            \"Gender\",
p.tracking_campaign_name   \"TrackingCampaign\", 
p.accepts_sms          \"AcceptsSMS\",
p.accepts_promotional_sms  \"AcceptsPromotionalSMS\", 
p.identification_number    \"IdentificationNumber\", 
p.id_verified_id       \"IdentificationVerified\", 
p.security_word        \"SecurityWord\", 
p.ident_manual_verified_until  \"IdentificationManualVerified\",
p.accepts_chat         \"AcceptsChat\", 
p.frequent_player_level_id     \"FrequentPlayerLevel\", 
p.preferred_comm_channel   \"PreferredCommunicationChannel\", 
p.is_reward_abuser         \"IsRewardAbuser\", 
p.newsletter_id        \"Newsletter\", 
p.accepts_rewards      \"AcceptsRewards\", 
ci.postal_code         \"PostalCode\", 
ci.country_id          \"Country\", 
ci.region          \"Region\", 
ci.email           \"Email\",
ci.address1            \"Address1\", 
ci.address2            \"Address2\", 
ci.address3            \"Address3\", 
ci.phone1          \"Phone1\",
ci.phone2          \"Phone2\",
ci.city            \"City\", 
ci.mobile_phone        \"MobilePhone\", 
ci.address_state_id        \"AddressVerified\" 
FROM 
player p 
JOIN contact_info ci     ON p.CONTACT_INFO_ID = ci.CONTACT_INFO_ID 
JOIN player_session ps  ON p.PLAYER_ID = ps.PLAYER_ID 
WHERE 
ps.external_client_session_id = \'$sessionID\'

Ici c'est le code que j'utilise:

String query = "";
try{
BufferedReader bufferedReader = new BufferedReader(
new FileReader("templates\\sqlQueries\\GetPlayerDetails.txt")
);
while(bufferedReader.readLine()!=null){
query = new StringBuilder().append(query).append(bufferedReader.readLine()).toString();
}
}
catch (FileNotFoundException e){
e.printStackTrace();
}
catch (IOException e){
e.printStackTrace();
}
query = query.replace("$sessionID", sessionID);
  • Je suggère étapes de bébé. Intead de l'essayer pour sélectionner plusieurs champs, essayez de choisir un seul. Que fait troublehooting plus facile.
InformationsquelleAutor mrk2 | 2014-02-14