데이터 세트에 새 값을 삽입 할 때 SQL 함수를 사용하고 싶습니다. 그러나 나는 계속 TypeError: can't convert Sequel::SQL::Function into String
오류가 발생합니다. Sequel 문서에서는 함수를 사용하여 선택하는 방법을 설명하지만 삽입하지는 않습니다.Insert 문에서 Sequel SQL 함수를 사용하려면 어떻게해야합니까?
DB.run
동적으로 삽입하고 원시 SQL이 복잡하고 유연하지 않기 때문에 이상적으로는 피하고 싶습니다.
이
내가 할 노력하고있어 무엇 :x = 'something'
y = 3
func_value = Sequel.function(:func, value)
DB[:dataset].insert (:col1 => x, :col2 => y, :col3 => func_value)
이게 가능 :
INSERT INTO dataset (col1, col2, col3) VALUES ('something', 3, func(value))
이 내가 속편에있는 무엇인가? 그렇다면 무엇을 놓치고 있습니까?
,하지만 난 문제를 분리하려고하는 것이 좋습니다. 나에게 1 단계는 func_value를 출력하여 그 내용을 확인하는 것입니다. –
func_value는 Sequel :: SQL :: Function의 인스턴스입니다. 내 질문에 내 생각에 따라 Sequel :: SQL :: Function 인스턴스에 할 수있는 일을 후속 삽입 메서드로 전달할 수 있습니다. –
필자는 DB.run을 사용하여 func_value 변수에 적절한 값을 가져오고 유연성을 위해 DB [: dataset] .insert 구문을 사용했습니다. DB.run ("select func (# {value});")'다른 대답이 있다면, 나는 그것을보고 싶다! –