-3

I am trying to run a very complex SQL in my python code. However, the code has multiples lines. when I move the sql to the next line looks like it generates an error. How can have multiples line ? how can I make python think the next line is still SQL code?

I am trying to query using python

def NewPartNumber(v_sql,Part_No,Rev_no):
    dsn_tns = cx_Oracle.makedsn('XXXXXXXXXXX', 'XXX', service_name='XXXXXX')
    conn = cx_Oracle.connect(user=r'XXX', password='XXXXX', dsn=dsn_tns)
    c = conn.cursor()


#####Here is my SQL###########Python do not like when I break in from#####


    w_sql =('SELECT (SUBSTR((SELECT (SUBSTR((SELECT DESCRIPTION FROM lora1app.ENG_PART_REVISION_REFERENCE WHERE part_rev ='OBS' and part_no ='XXXXX') ,
    (instr((SELECT DESCRIPTION FROM lora1app.ENG_PART_REVISION_REFERENCE WHERE part_rev ='OBS' and part_no ='XXXXX') ,'USE',1)+4),
    length((SELECT DESCRIPTION FROM lora1app.ENG_PART_REVISION_REFERENCE WHERE part_rev ='OBS' and part_no ='XXXXX') 
    ))) from dual),1,6) )FROM DUAL')

####      I can make to work if I have a single huge string    ################




for result in c:
        if result ==' ':
            print("No data was found")
        else:
            print(result)

    return result
JUANLUISSG
  • 63
  • 1
  • 8
  • 6
    Possible duplicate of [Pythonic way to create a long multi-line string](https://stackoverflow.com/questions/10660435/pythonic-way-to-create-a-long-multi-line-string) – A Jar of Clay Feb 18 '19 at 15:54

1 Answers1

1

Try this instead:

w_sql =''' ('SELECT (SUBSTR((SELECT (SUBSTR((SELECT DESCRIPTION FROM lora1app.ENG_PART_REVISION_REFERENCE WHERE part_rev ='OBS' and part_no ='XXXXX') ,
    (instr((SELECT DESCRIPTION FROM lora1app.ENG_PART_REVISION_REFERENCE WHERE part_rev ='OBS' and part_no ='XXXXX') ,'USE',1)+4),
    length((SELECT DESCRIPTION FROM lora1app.ENG_PART_REVISION_REFERENCE WHERE part_rev ='OBS' and part_no ='XXXXX') 
    ))) from dual),1,6) )FROM DUAL') '''

If you need to fill in the where clause you will need to add a %s and feed your variables into the cursor.

eatmeimadanish
  • 3,809
  • 1
  • 14
  • 20