2017-11-19 3 views
-2

cx_Oracle.DatabaseError : ORA-00984 : 안파이썬 데이터베이스 오류 (여기에서는 허용되지 열)

cur.execute 여기 허용 컬럼 (삽입 ...) 열의 오류 여기

허용되지 보이고
import cx_Oracle 

class Student: 
    def __init__(self,studentname,studentperformance): 

     connection = cx_Oracle.connect('saif/saif') 
     cur = connection.cursor() 

     cur.execute('create table student (studentrollno number(10),studentname varchar2(20),studenttype varchar2(20),studentperformance number(5,2),category varchar2(20),bookbank number(1))') 

     self.rollno = 171641000 
     self.studentname = studentname 
     self.studentperformance = studentperformance 
     # Line below is showing database error 
     cur.execute('insert into student(studentrollno,studentname,studentperformance) values(self.rollno,self.studentname,self.studentperformance)') 

s = Student("saif",75) 
+2

의 일부를 볼 바인드 변수를 사용합니다. – MikaS

+0

님이 질문을 추가했습니다. – saif

+0

질문이 아직 없습니다. 단지 오류입니다. –

답변

0

이 줄은 SQL 문에 파이썬 변수 self.rollno 등을 사용하려고 :

cur.execute('insert into student(studentrollno,studentname,studentperformance) values(self.rollno,self.studentname,self.studentperformance)') 

그러나이기 때문에 내부를 인용 파이썬 값은 대체되지 않습니다. 문자열은 축 어적으로 데이터베이스로 전송되며 이해할 수는 없습니다.

은 아래의 각 변수에 대한 텍스트에 사용되는 :bvid 같은 자리, 당신은 질문을하지 않는 examples 예컨대 :

sql = 'select * from SampleQueryTab where id = :bvid' 

print("Query results with id = 4") 
for row in cursor.execute(sql, bvid = 4): 
    print(row) 
print()