반응형

/*******************************************************************************************************************
-- Title : [MSPy] UnboundLocalError 발생 에러 해결
-- Reference : dbrang
-- Key word : sp_execute_external_script 로컬변수 전역변수 로컬 변수 전역 변수  
*******************************************************************************************************************/

■ Script

EXECUTE sp_execute_external_script  

@language = N'Python' ,

@script = N'

import pandas                                                 # import pandas as ps

df = pandas.DataFrame([1000, 2000, 3000, 4000])    # ps.DataFrame 으로 변경하면 에러 안 남.

print(df)'


■ Error Message

메시지 39004, 수준 16, 상태 20, 줄 114

'sp_execute_external_script'를 실행하는 동안 'Python' 스크립트 오류가 발생했습니다(HRESULT = 0x80004004).

메시지 39019, 수준 16, 상태 2, 줄 114

외부 스크립트 오류가 발생했습니다. 


Error in execution.  Check the output for more information.

Traceback (most recent call last):

  File "<string>", line 5, in <module>

  File "C:\PROGRA~1\MICROS~1\MSSQL1~1.MSS\MSSQL\EXTENS~1\MSSQLSERVER01\B5898F34-CF1A-4636-B266-596559BADD97\sqlindb.py", line 24, in transform

    OutputDataSet = pandas.DataFrame()

UnboundLocalError: local variable 'pandas' referenced before assignment


SqlSatelliteCall error: Error in execution.  Check the output for more information.

외부 스크립트의 STDOUT 메시지: 

SqlSatelliteCall function failed. Please see the console output for more information.

Traceback (most recent call last):

  File "C:\Program Files\Microsoft SQL Server\MSSQL14.MSSQLSERVER\PYTHON_SERVICES\lib\site-packages\revoscalepy\computecontext\RxInSqlServer.py", line 406, in rx_sql_satellite_call

    rx_native_call("SqlSatelliteCall", params)

  File "C:\Program Files\Microsoft SQL Server\MSSQL14.MSSQLSERVER\PYTHON_SERVICES\lib\site-packages\revoscalepy\RxSerializable.py", line 291, in rx_native_call

    ret = px_call(functionname, params)

RuntimeError: revoscalepy function failed.


** 프로시저 내부에서 '전역변수, 로컬변수' 해석이 되면서 에러가 발생하는 듯.
** Library에 Alias를 주니 해결되는데 정확한 원인은 아직 모름.

반응형

+ Recent posts